Struts2 自定义拦截器 拦截异常

lillian1205 2009-12-30 11:17:30
比如数据库连接失败,
数据库连接的异常是直接try..catch的,
如何将这样的异常 用自定义拦截器拦截,并在页面显示?
...全文
575 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
redlotus_lyn 2009-12-30
  • 打赏
  • 举报
回复
1.拦截器中
try {

}catch(
数据库连接失败。
return "databaseerror"
)
struts.xml中配置
global-result配置databaseerror。
lanmou1983 2009-12-30
  • 打赏
  • 举报
回复
try {

} catch (Exception e) {
e.printStackTrace(); //这条 输出异常内容到后台 貌似,然后你可以设置一下把它放到页面显示

}
不知道回答的对不对 呵呵
zidasine 2009-12-30
  • 打赏
  • 举报
回复
addActionError("")
lillian1205 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 licip 的回复:]
在实际的项目,你得做一个自定义的异常,在出现异常的地方,统一封装成自己的异常,然后,往外抛。统一到Action这一层来处理呀。
[/Quote]

数据层连接数据库的异常也要向外抛吗?

还有怎么统一封装成自己的异常?能具体说说吗?谢谢了!
licip 2009-12-30
  • 打赏
  • 举报
回复
在实际的项目,你得做一个自定义的异常,在出现异常的地方,统一封装成自己的异常,然后,往外抛。统一到Action这一层来处理呀。
lanmou1983 2009-12-30
  • 打赏
  • 举报
回复
4楼的方法貌似比我的好 呵呵 我也不太清楚
lanmou1983 2009-12-30
  • 打赏
  • 举报
回复
或者在System.ouu.println......把出现的异常直接 输出在后台里 就那个Console
lanmou1983 2009-12-30
  • 打赏
  • 举报
回复
汗 具体怎么弄我也不清楚,我也是新手,不过为什么一定要把异常放到前台??完全可以在后台看异常 普通的用户知道异常也没用 如果只是显示在页面上

try {

} catch (Exception e) {
e.printStackTrace(); //这条 输出异常内容到后台 貌似,然后你可以设置一下把它放到页面显示
这里可以做一个 返回 return mapping.findfo....(“异常页面”)
这个异常页面你可以专门 做一个*.jsp 在这个页面中 说明可能是什么异常!

}
lillian1205 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 redlotus_lyn 的回复:]
1.拦截器中
try {

}catch(
  数据库连接失败。
  return "databaseerror"
)
struts.xml中配置
global-result配置databaseerror。

[/Quote]

拦截器中try ..catch的是invocation.invoke(),这个是捕获Action中的异常
现在是想数据库连接失败类似的不在Action中的异常
lillian1205 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lanmou1983 的回复:]
try {

} catch (Exception e) {
e.printStackTrace(); //这条 输出异常内容到后台 貌似,然后你可以设置一下把它放到页面显示

}
不知道回答的对不对 呵呵
[/Quote]

”设置一下把它放到页面显示“
能详细说下吗?



lillian1205 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zidasine 的回复:]
addActionError("")
[/Quote]
能否详细说下?
sunscok 2009-12-30
  • 打赏
  • 举报
回复
public String intercept(ActionInvocation invocation) throws Exception {

String result = "";

try {
result = invocation.invoke();
}catch(DataAccessException ex){

throw new SystemException("数据库操作失败!");

}catch(NullPointerException ex){

throw new SystemException("调用了未经初始化的对象或者是不存在的对象!");

}catch(IOException ex){

throw new SystemException("IO异常!");

}catch(ClassNotFoundException ex){

throw new SystemException("指定的类不存在!");

}catch(ArithmeticException ex){

throw new SystemException("数学运算异常!");

}catch(ArrayIndexOutOfBoundsException ex){

throw new SystemException("数组下标越界!");

}catch(IllegalArgumentException ex){

throw new SystemException("方法的参数错误!");

}catch(ClassCastException ex){

throw new SystemException("类型强制转换错误!");

}catch(SecurityException ex){

throw new SystemException("违背安全原则异常!");

}catch(SQLException ex){

throw new SystemException("操作数据库异常!");

}catch(NoSuchMethodError ex){

throw new SystemException("方法末找到异常!");

}catch(InternalError ex){

throw new SystemException("Java虚拟机发生了内部错误");

}catch (SystemException ex) {
throw ex;
}catch(Exception ex){

throw new SystemException("程序内部错误,操作失败!");

}
return result;
}

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧