在做项目的时候,常常会遇到不同的异常需要捕捉,或是catch,或是throw,但是单靠java中的异常是无法满足业务需求的,像一段代码中会有FileNotFoundException和IOException,如果throw,则父方法只能捕获到IOException,而业务中可能还需要处理FileNotFoundException,这时自定义异常是一种办法吧。想请教各位,你们在项目中是如何处理异常的,对异常的处理是如何分级的,应该细分到如何程度。
问题可能稚了些,但请高手们谈谈经验,而不只是“根据项目需要”,谢谢了^_^
问题可能稚了些,但请高手们谈谈经验,而不只是“根据项目需要”,谢谢了^_^
为什么?
java.lang.Throwable
java.lang.Exception
java.io.IOException
java.io.FileNotFoundExceptiontry{
...
} catch(FileNotFoundException fe){
...
} catch(IOException ie){
...
} catch(Exception e){
...
}
..........
}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;
}}