`

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之声明式异常捕捉

    在Struts2中,声明式异常处理是其强大的特性之一,它允许开发者通过配置文件来定义不同类型的异常如何被处理,而不是在每个动作类中进行硬编码。这样可以提高代码的可读性和可维护性,同时也方便了异常处理策略的...

    Spring与Hibernate集成---声明式事务

    本文将深入探讨如何将Spring与Hibernate进行集成,并重点介绍声明式事务的配置与使用。 Spring框架是一个全面的企业级应用开发框架,它提供依赖注入(DI)和面向切面编程(AOP)等功能,简化了Java应用的复杂性。另...

    spring学习笔记(十六)-声明式事务的例子

    在Spring框架中,声明式事务管理是其核心特性之一,它允许开发者通过配置来控制事务的行为,而无需在代码中显式地管理事务的开始、提交、回滚等操作。这种方式使得事务管理更加灵活,也使得代码更加简洁,易于维护。...

    Struts2声明式异常示例代码

    Struts2是一个强大的Java web开发框架,它提供了一种声明式异常处理机制,极大地简化了在应用程序中处理异常的方式。本示例代码旨在演示如何在Struts2中定义和使用声明式异常,以及如何访问异常属性。 声明式异常...

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

    声明式异常处理是Struts中的一种特性,允许我们在struts.xml配置文件中定义全局的异常映射,而不是在每个Action类中单独处理。这样可以实现异常处理的统一和标准化,减少代码重复,提高可维护性。声明式异常处理通常...

    C++课程-6_异常处理

    `throws`则用于列出函数可能抛出的异常类型,这是一种声明式异常规格,可以指导编译器进行异常安全性检查。 在实际编程中,良好的异常处理习惯包括: 1. 尽量避免在构造函数或析构函数中抛出异常,因为这可能导致...

    使用Spring的声明式事务----Annotation注解方式

    在Spring框架中,声明式事务管理是其核心特性之一,它允许开发者无需手动处理事务的开始、提交、回滚等操作,而是通过配置或者注解的方式进行声明,从而简化了事务管理的复杂性。本篇文章将深入探讨如何使用Spring的...

    使用Spring的声明式事务----AOP方式

    在Spring框架中,声明式事务管理是通过AOP(面向切面编程)实现的,它为开发者提供了方便、高效且灵活的事务管理机制。本文将深入探讨如何利用Spring的声明式事务来处理业务操作中的数据一致性问题,以及相关源码...

    声明式事务处理 SSh

    在IT行业中,声明式事务处理是一种广泛应用于Java企业级应用中的技术,主要通过Spring框架来实现。相较于编程式事务管理,声明式事务处理更加简洁、易于维护,它将事务管理与业务逻辑解耦,使开发者可以专注于业务...

    spring声明式事务.zip

    在Spring框架中,声明式事务管理是其核心特性之一,它允许开发者通过配置或注解方式来控制事务的边界,从而极大地简化了事务管理的工作。本文将深入探讨Spring声明式事务的实现机制、优缺点以及如何在实际项目中进行...

    Spring声明式事务处理

    Spring框架的声明式事务处理是Java企业级应用中不可或缺的一部分,它为开发者提供了一种方便、高效的方式来管理事务。在Spring中,事务管理分为编程式和声明式两种方式,而声明式事务处理则是通过配置来控制事务的...

    09-5基于注解方式的声明式事务.rar

    本资料包“09-5基于注解方式的声明式事务.rar”聚焦于Spring框架中如何使用注解来实现声明式事务管理,这是一种简化事务处理、提高代码可读性和可维护性的方法。在这里,我们将深入探讨相关知识点。 1. **什么是...

    spring声明式事务管理配置方式

    在Spring框架中,声明式事务管理是实现事务处理的一种高效且灵活的方式,它允许开发者通过在服务层方法上添加特定的注解来控制事务的边界,而无需编写大量的事务管理代码。这种方式使得业务逻辑和事务控制得以分离,...

    spring+mybatis的声明式事务

    本文将深入探讨"spring+mybatis的声明式事务"这一主题,帮助你理解并掌握这一核心技术。 1. **Spring事务管理** Spring提供两种事务管理方式:编程式事务管理和声明式事务管理。编程式事务管理通过编写代码来控制...

    IBM-ETP-java培训08.异常.ppt

    非检查异常(如NullPointerException、ArrayIndexOutOfBoundsException)则在运行时才检查,可以不显式声明。 - **自定义异常**:开发者可以通过创建新的异常类来表示特定的错误条件,继承自Exception或其子类。 -...

    6.009-lab-4

    通常这样的实验室练习会围绕特定的编程主题展开,比如数据结构、函数式编程、错误处理、面向对象编程、文件操作或是递归等。学生可能被要求实现特定的函数、解决复杂问题或者分析代码效率。 【标签】"Python" 明确...

    全面分析 Spring 的编程式事务管理及声明式事务管理

    本文将全面分析Spring中的编程式事务管理和声明式事务管理,旨在帮助开发者深入理解这两种事务管理方式,并在实际项目中合理选择。 **编程式事务管理** 编程式事务管理是通过代码直接控制事务的开始、提交、回滚等...

    spring声明式事务处理demo

    Spring框架的声明式事务处理是其企业级应用中的核心特性之一,它允许开发者通过配置来管理事务,而无需在代码中显式地控制事务的开始、提交和回滚。这种方式极大地提高了代码的可读性和可维护性。在这个"spring声明...

Global site tag (gtag.js) - Google Analytics