`

009 - 声明式异常

阅读更多

1. 声明式异常

 

 //struts.xml

<struts>
        <constant name="struts.devMode" value="true"></constant>

        <global-results>
               <result name="error">/error.jsp</result>
        </global-results>
     
        <global-exception-mappings>
              <exception-mapping result="error" exception="java.lang.Exception"></exception-mapping>
        </global-exception-mappings>

      
     
       <package name="admin" namespace="/admin" extends="struts-default" >
     
               <action name="userList" class="UserAction"  method="list">

                           <result>/userAdd.jsp</result>
                                   <!-- <exception-mapping result="error" exception="java.sql.SQLException" />  
                           <result name="error">/error.jsp</result> -->

              </action>

    </package>
        
</struts>

 

 

 

 //CategoryAction

public class CategoryAction extends ActionSupport {
         private User user;

 

        //Action接到user.list()抛来的异常,并把它抛出struts2,struts2根据struts.xml里的配置找到相应页面
         public String list()  throws Exception {  


                   categories = user.list();
                   return SUCCESS;
         }
 
}

 

 

 //UserService

public class UserService {

 public List<User> list() throws SQLException {
        Connection conn = DB.createConn();
        String sql = "select * from t_user_";        //故意写错,产生java.sql.Exception,抛给了UserAction
        PreparedStatement ps = DB.prepare(conn, sql);
        List<User> users= new ArrayList<User>();
        try {
               ResultSet rs = ps.executeQuery();
               User u= null;
               while(rs.next()) {
                     u = new User();
                     u.setId(rs.getInt("id"));
                     u.setName(rs.getString("name"));
                     users.add(u);
               }
        } catch (SQLException e) {
                    e.printStackTrace();
                    throw(e);
        }
       DB.close(ps);
       DB.close(conn);
       return categories;
 }


 
}

分享到:
评论

相关推荐

    struts2之声明式异常捕捉

    NULL 博文链接:https://fuchangle.iteye.com/blog/1770407

    关于spring声明式事务管理异常处理的测试和小结

    spring声明式事务管理异常处理的测试

    Struts2声明式异常示例代码

    主要演示了声明式异常的定义和使用方法,以及访问exception属性

    Struts 声明式异常处理和个性化异常处理

    NULL 博文链接:https://xace.iteye.com/blog/416561

    qh-erp-ssm

    - Spring(IOC DI AOP 声明式事务处理) - SpringMVC(支持Restful风格) - Hibernate Validator(参数校验) - Mybatis(最少配置方案) - shiro权限控制,结合ajax实现了异步认证与异步授权,同时实现了细粒度的...

    (2条消息) Java异常面试题(2020最新版)_ThinkWon的博客-CSDN博客_java异常面试题1

    声明异常抛出异常捕获异常如何选择异常类型常异常处理式直接抛出异常封装异常再抛出捕获异常定义异常Java异常常试题1. Error 和 Exception 区别是

    erp源码-ssm+easyUI+mysql+maven+shiro

    erp项目 基于ssm+easyUI+mysql+maven+shiro开发 本系统实现目标如下: ## 项目技术架构(Spring+SpringMVC+Mybatis) ## - Maven - Spring(IOC DI AOP 声明式事务处理) - SpringMVC(支持Restful风格) - Hibernate...

    erp完整源码-ssm+easyUI+mysql+maven+shiro

    erp项目 基于ssm+easyUI+mysql+maven+shiro开发 本系统实现目标如下: ## 项目技术架构(Spring+SpringMVC+Mybatis) ## - Maven - Spring(IOC DI AOP 声明式事务处理) - SpringMVC(支持Restful风格) - Hibernate...

    Spring2.5和Hibernate3集成--学习spring aop ioc

    采用声明式事务 1.声明式事务的配置 * 配置sessionFactory * 配置事务管理器 * 配置事务的传播特性 * 配置哪些类哪些方法使用事务 2.编写业务逻辑方法 * 继承HibernateDaoSupport类,使用this....

    java ssm开发的生产管理ERP系统

    - Spring(IOC DI AOP 声明式事务处理) - SpringMVC(支持Restful风格) - Hibernate Validator(参数校验) - Mybatis(最少配置方案) - shiro权限控制,结合ajax实现了异步认证与异步授权,同时实现了细粒度的...

    Delphi7.完美经典

    6-3-2 不需要使用type声明的数据类型 6-3-3 必须使用type声明的数据类型 6-3-4 定义变量 6-3-5 变量的作用域 6-3-6 定义常量 6-3-7 变量的类型转换(Typecast) 6-4 Object Pascal的运算符(Operator) 6-4-1 ...

    Spring3.x_Struts2.x_Hibernate3.x整合之声明式事务配置

    事务声明在Dao中,但是通常都会在Service中来处理多个业务逻辑的关系,如:删除,更新等,此时如果在执行了一个步骤之后抛出抛出异常就会导致数据部完整,所以事务不应该在Dao中处理,而应该在Service...声明式的事务。

    一个基于SpringBoot的微服务脚手架+源代码+文档说明

    - Feign声明式REST调用 - Service层仅做单元测试(mokito) - Controller层仅做集成测试(testRestTemplate) - Lombok简化domain层开发 - 业务无关代码抽离成common模块,多个微服务共享 - 允许不同微服务间的少量...

    spring-boot示例项目

    cloud-feign|[Eureka服务注册中心、负载均衡、声明式服务调用](https://github.com/smltq/spring-boot-demo/blob/master/cloud-feign) cloud-hystrix|[Hystrix服务容错、异常处理、注册中心示例]...

    Web表现层框架 MyFrame

    用标准XML配置文件来控制转发流程,支持国际化(有国际化标签),支持声明式异常处理,框架中用到多种设计模式(单例模式、抽象工厂模式、代理模式、门面模式等等)。基本控制流程类似Struts,但业务控制类(Action)不...

    carbon-logging:Carbon日志记录-AspectJ,动态代理和Cglib的声明式日志记录

    Carbon Logging提供了一个用于在Java中执行声明式日志记录的框架。 它的设计提供了多种用于集成标准化日志记录的机制。 除了支持标准化的调试样式日志记录外,Carbon Logging还提供了用于执行性能日志记录和异常日志...

    Delphi7.完美经典.part1

    7-9 静态成员方法——Class Methods &lt;br&gt;第8章 异常处理 &lt;br&gt;8-1 异常处理存在的目的 8-2 Object Pascal异常的种类 8-2-1 Delphi内建的异常类 8-2-2 自定义异常类 8-3 触发异常的方法 ...

    OA项目SSH整合框架

    2,配置声明式事务(使用基于注解的方式) 1,配置 &lt;!-- 配置事务管理器 --&gt; &lt;property name="sessionFactory" ref="sessionFactory"&gt;&lt;/property&gt; &lt;!-- 配置基于注解的事务支持--&gt; ...

Global site tag (gtag.js) - Google Analytics