首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于java项目中的自定义错误^

2012-03-15 
关于java项目中的自定义异常^_^在做项目的时候,常常会遇到不同的异常需要捕捉,或是catch,或是throw,但是单

关于java项目中的自定义异常^_^
在做项目的时候,常常会遇到不同的异常需要捕捉,或是catch,或是throw,但是单靠java中的异常是无法满足业务需求的,像一段代码中会有FileNotFoundException和IOException,如果throw,则父方法只能捕获到IOException,而业务中可能还需要处理FileNotFoundException,这时自定义异常是一种办法吧。想请教各位,你们在项目中是如何处理异常的,对异常的处理是如何分级的,应该细分到如何程度。
问题可能稚了些,但请高手们谈谈经验,而不只是“根据项目需要”,谢谢了^_^

[解决办法]
这个一般是分成 系统层面异常 和 应用逻辑方面的 异常

前者是用户无法处理的,给出错误信息就可以了(如数据库连接错误..)

后者是用户可以解决的(如输入有问题)

[解决办法]
自己写咯
[解决办法]
要自己定义异常类,建议看看think in java
[解决办法]
一般是自己定义的。根据不同的需要写不同的层次
[解决办法]
系统层面异常 和 应用逻辑方面的
[解决办法]
自己定义个异常类,包含异常信息就够了。
[解决办法]
如果throw,则父方法只能捕获到IOException
为什么?
[解决办法]
java.lang.Object
java.lang.Throwable
java.lang.Exception
java.io.IOException
java.io.FileNotFoundException

try{
...
} catch(FileNotFoundException fe){
...
} catch(IOException ie){
...
} catch(Exception e){
...
}
[解决办法]
class MyException extends Exception{
..........
}

public static void main(){
try{
........
}catch(MyException e){
.......
}
}
===================================================
ps:
附赠一个搞笑版答案:
throw new RuntimeException( "偶的自定义异常 ");
[解决办法]
没有必要分得这么清,你可以自己写一个异常:能够判断出现了哪些常见异常,在被调用方法当中捕获异常,处理之后再重新抛出自定义异常,让调用方法来捕获,这样就解决问题了!

你想要传递多远就有多远!

如果你想要写一个能区分各层的异常,据我个人水平了解:目前还做不到。
[解决办法]
继承一下。
自己写一个异常类。
就搞定了。
[解决办法]
学习拉!

[解决办法]
大家地解决方案震得很好啊
[解决办法]
给你看个我写的异常类:
一般是要使自己项目的所有异常继承本项目定义的异常类

public class MyException extends Exception {

/** errorCode */
private String errorCode = null;

/** rootCause */
private Throwable rootCause = null;

/** Log Class */
private Log log = new Log();

/**
* Constructor
*/
public MyException() {
super();
}

/**
* Constructor
*
* @param errorCode
* @throws SIRMException
*/
public MyException(String errorCode) throws MyException {
super(errorCode);
System.out.println(errorCode);
log.log(errorCode);
}

/**
* Constructor
*
* @param errorCode
* @param rootCause
* @throws SIRMException
*/
public MyException(String errorCode, Throwable rootCause) throws MyException {
super(errorCode, rootCause);


System.out.println(errorCode + rootCause.getMessage());
log.log(errorCode + rootCause.getMessage());
}

/**
* get errorCode
*
* @return errorCode
*/
public String getErrorCode() {
return errorCode;
}

/**
* get rootCause
*
* @return rootCause
*/
public Throwable getRootCause() {
return rootCause;
}

}

[解决办法]
可以继承基本异常的方法自定义异常啊!
[解决办法]
不要让异常掺乎到你的业务逻辑中

热点排行