在service方法里 throw抛出一个异常, 然后再方法声明上加上throws:

public List<Category> list() throws SQLException{
Connection conn=DB.createConn();
String sql = "select * from _category";
PreparedStatement ps = DB.prepare(conn, sql);
List<Category> categories = new ArrayList<Category>();
try {
ResultSet rs=ps.executeQuery();
Category c = null;
while(rs.next()){
c =new Category();
c.setId(rs.getInt("id"));
c.setName(rs.getString("name"));
c.setDescription(rs.getString("description"));
categories.add(c);
}
} catch (SQLException e) {
e.printStackTrace();
throw(e);
}
DB.close(ps);
DB.close(conn);
return categories;
}

在调用list方法的action里 throws, 这样就不用try catch而是由struts2处理:

	public String list() throws Exception{
categories=categoryService.list();
return SUCCESS;
}

struts.xml里如何配置?

 <package name="admin" namespace="/admin" extends="struts-default" >
<default-action-ref name="index"/>
<action name="index">
<result>/admin/index.html</result>
</action>
<action name="*_*" class="com.bjsxt.bbs2009.action.{1}Action" method="{2}">
<result>/admin/{1}_{2}.jsp</result>
<result name="input">/admin/{1}_{2}.jsp</result>
<exception-mapping result="error" exception="java.sql.SQLException"/>
<result name="error">/error.jsp</result>
<result name="exception_handle">/admin/exception.jsp</result>
</action>
</package>

service里的sql语句改成错误的, 这样在调用页面的时候, 就会显示error.jsp.

下面是异常处理最常用的方法:

1. 配置新的package, global results, global-exception-mappings, 自己的action的包继承异常包即可.

原理:::拦截器 

<package name="bbs2009_default" extends="struts-default">
<global-results>
<result name="error">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="error" exception="Exception"></exception-mapping>
</global-exception-mappings>
</package> <package name="admin" namespace="/admin" extends="bbs2009_default" >
<default-action-ref name="index"/>
<action name="index">
<result>/admin/index.html</result>
</action>
<action name="*_*" class="com.bjsxt.bbs2009.action.{1}Action" method="{2}">
<result>/admin/{1}_{2}.jsp</result>
<result name="input">/admin/{1}_{2}.jsp</result>
<!--<exception-mapping result="error" exception="java.sql.SQLException"/>
<result name="error">/error.jsp</result>-->
<result name="exception_handle">/admin/exception.jsp</result>
</action>
</package>

  

  

最新文章

  1. 我的屌丝giser成长记-工作篇之A公司
  2. daima
  3. db2+python+sqlchemy环境的搭建
  4. USB Type-C 接口有什么优点?
  5. re模块(正则表达式)
  6. java使用Cipher进行签名和验签
  7. Machine Learning - 第3周(Logistic Regression、Regularization)
  8. 年轻人你活着不是为了看K线!
  9. Linux查看文件以及文件夹的大小
  10. UITableView设置cell为不可选?
  11. zoj 2290 Game 博弈论
  12. 如何在 Windows 7 安裝 SharePoint Server 2010
  13. 玩玩SPARK
  14. a标签的背景图在ie8下不显示的问题
  15. 阿里云ECSserver部署django
  16. Java中的栈上分配
  17. UNIX网络编程——TCP回射服务器/客户端程序
  18. java 线程池 ---- newSingleThreadExecutor()
  19. xcode升级10
  20. .NET: 使用.NET Core CLI开发应用程序

热门文章

  1. Photoshop基础,前景背景,图层,选取
  2. Java学习笔记之自定义异常
  3. WPF子窗体:ChildWindow
  4. Creating your own header file in C
  5. 80x86的3种工作方式
  6. 11--tag 和transform属性
  7. HDU 3552 I can do it!
  8. vbs 解析html文档的方法
  9. STM32F2系列时钟的配置
  10. HBase集群安装