ssh项目异常用处理方式
来源:互联网 发布:网络监视器 编辑:程序博客网 时间:2024/05/18 21:48
在struts2中封装了自己的异常处理方式。我们在项目中可以根据自己的需要来处理自己的异常。
一 异常信息封装
可以建一个异常信息封装类,将项目中常见异常信息进行封装,常见信息包括:
1.异常种类:
如: 数据库操作异常; 应用操作异常(业务异常,如 权限不够等) ; 系统异常(如 应用服务器异常)
2.具体异常:
如:"该数据库不存在!" 等等
二 异常处理
可以在持久层或业务逻辑层捕获处理,也可以层层向上抛,直到Action层,在Action进行捕获。
在Action进行捕获之后可以有两种处理方式:
1.将该异常 加上自己的信息throw出来,如:
.........
.........
} catch (UnifyUserException u) {
throw new UnifyUserException("添加角色失败!");
}
这时需要在struts.xml中配置异常处理信息,如:
在<package 中加入全局异常映射:
<!-- 全局异常映射 -->
<global-exception-mappings>
<exception-mapping result="allError" exception="java.lang.Exception">
</exception-mapping>
</global-exception-mappings>
<!-- 全局异常映射 -->
如果系统要求不是很严格,可以用全局异常映射将所有异常都转发到一个公用的页面,这时需要在抛出异常的Action中加入该全局映射,如:
<action name="login" class="logionAction">
<result name="success">index.jsp</result>
<result name="error">login.jsp</result>
<result name="allError">../operaterFailed.jsp</result>
</action>
如果想具体一点,可以配置针对具体Action的具体异常,这时需要配置局部异常处理,如:
<action name="MASTERACTION_*" class="masterAction" method="{1}">
<!-- 局部异常映射 -->
<exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>
<exception-mapping result="sql" exception="java.sql.SQLException"></exception-mapping>
<!-- 异常转向页面 -->
<result name="allError">../operaterFailed.jsp</result>
<result name="nullPoint">../operaterFailed.jsp</result>
<result name="sql">../operaterFailed.jsp</result>
</action>
最后需要在指向的存放异常信息的页面输出异常信息,如:
例如/operaterFailed.jsp页面加上:
<s:property value="exception.message"/>
此时该页面上就会显示在Action中throw出的异常信息:"添加角色失败!“
2.将异常捕获,但是不throw,而是添加到Struts2的错误处理如ActionError中,然后在页面中显示出来,如:
try{
。。。
} catch (UnifyUserException u) {
this.addActionError("绑定角色失败!");
}
在页面上显示出来,如:
<font color="red"><s:actionerror/></font>
三 异常展示方式
异常展示方式常用的可以有:
1,所有的异常页面都公用一个页面,比如在配置文件中定义一个全局异常映射即可实现。不过这种做法不推荐,信息不详细。
2.具体到某个操作(方法)的异常显示,如在一个页面中来单独显示错误信息,
3.在操作页面显示错误信息,比如在登陆页面显示 用户名密码有误
针对第3种是推荐并且常用的做法,一般通过异常捕获、Action手工校验、struts框架校验来实现。
总之异常捕获和处理要适当,不要所有的方法都要捕获,不但没有必要也会影响到系统效率,根据具体情况适当处理!
- ssh项目异常用处理方式
- ssh项目异常用处理方式 .
- ssh项目异常用处理方式
- ssh项目异常用处理方式
- ssh项目异常用处理方式
- SSH 项目代码异常笔记
- SSH 各包的用处
- ssh项目异常调试请教高手
- java ssh项目启动异常说明
- ssh项目中遇到的异常InvalidDataAccessApiUsageException
- SSH项目报:org.hibernate.LazyInitializationException:异常
- SSH项目整合碰到异常及解决方法
- C++异常处理的用处
- Base64编码方式的用处
- Promise项目实践与异常处理方式
- ssh异常
- ssh异常
- SSH 异常!
- makefile双冒号规则
- Windows File Junctions, Symbolic Links and Hard Links
- svn switch命令使用方法记录
- VBA小知识点
- VC 使用ADO连接数据库的问题!error C2059: 语法错误 : “<L_TYPE_raw>”
- ssh项目异常用处理方式
- 3-22日参加科大讯飞新一代“语音云”发布暨语音开发者大会--有感
- 教你如何迅速秒杀99%的海量数据处理面试题
- 读Ruby for Rails的思考之Ruby的C扩展库
- php字符函数
- 碎语
- 天气预报源代码
- iPhone图形开发绘图小结
- 用C++写ruby扩展