在项目中大家的异常都是怎么处理的?
比如DAO存产生的异常,Service的异常
我一般碰到异常了都是先try catch然后在catch中再throw一个自定义的Exception或者直接把产生的异常e抛到上一层,一直抛到action以后进行try catch处理这种做法对么?
有没有其他什么更好的解决办法?
比如DAO存产生的异常,Service的异常
我一般碰到异常了都是先try catch然后在catch中再throw一个自定义的Exception或者直接把产生的异常e抛到上一层,一直抛到action以后进行try catch处理这种做法对么?
有没有其他什么更好的解决办法?
做个基类,统一处理所有异常,根据异常和业务分发到不同的页面。从DAO把异常抛到最上层再通过基类处理。
甚至都不用自定义异常!
直接让他无限的往上抛
抛的action就处理吧!
你的做法是对的
非运行时异常,向上抛。但最终还要try catch.
或者 try catch。
public class UserException extends RuntimeException { /**
*
*/
private Exception e;//保存原始异常
private String message = "系统出错,请重试,如再次出错,请与系统管理员联系,可能系统正在更新!";//处理后的异常消息
/**
* 不带参的构造方法
*
*/
public UserException(){
}
/**
* 封装原始异常的构造方法
* @param e
*/
public UserException(Exception e){
this.e = e;
}
/**
* 用一个字符串构造异常
* @param message
*/
public UserException(String message){
this.message = message;
}
/**
* 由原如异常、字符串构造
* @param e
* @param message
*/
public UserException(Exception e,String message){
this.e = e;
this.message = message;
} public Exception getE() {
return e;
} public void setE(Exception e) {
this.e = e;
} public String getMessage() {
return message;
} public void setMessage(String message) {
this.message = message;
}
}
异常无非是处理业务逻辑中的特殊情况 一般在大的应用中都是在service层中来处理
由service中的业务逻辑来决定到底该如何来处理这个异常
发现一篇比较好的文章
http://www.javaeye.com/topic/72170