struts2拦截器 怎么写能捕获到程序因为数据库里的字段为null ,程序在后台报的空指针异常??? 在线等

我这里主要是想捕获异常发送指定的邮箱功能struts.xml配置文件:<interceptors><!--定义权限控制拦截器--><interceptorname="au... 我这里主要是想捕获异常发送指定的邮箱功能
struts.xml 配置文件:
<interceptors>
<!-- 定义权限控制拦截器 -->
<interceptor name="authority" class="com.wxh.util.AuthorizationInterceptor" />
<!-- 定义一个包含权限控制的拦截器栈 -->
<interceptor-stack name="mydefault">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="authority" />
</interceptor-stack>
</interceptors>
<!-- 定义默认拦截器 -->
<default-interceptor-ref name="mydefault" />

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

java类
public class AuthorizationInterceptor extends AbstractInterceptor {
private String rtAction;

/*
* 拦截Action处理的拦截方法
*
*/
public String intercept(ActionInvocation invocation) throws Exception {
ExceptionMail exceptionMail=new ExceptionMail();
try
{
ActionContext ctx = invocation.getInvocationContext();
Map session = ctx.getSession();
Action action = (Action)invocation.getAction();
if (action instanceof LoginAction || action instanceof PnrTelPayAction) {
return invocation.invoke();
}
Long userName = (Long)session.get("loginId");
if(userName == null)
{
rtAction= Action.LOGIN;
} else {
rtAction= invocation.invoke();
}
}catch (Exception e)
{
//调用邮件方法传参数
exceptionMail.sendException(e.getCause().getMessage()+"\r\n"+e.toString());
e.printStackTrace();
rtAction= Action.ERROR;
}
return rtAction;
}
}
现在我有个异常 是空指针异常,为什么拦截器捕获不到呢?异常如下:
java.lang.NullPointerException
at com.wxh.service.impl.ReturnOrderServiceImpl.getHistoryDetailOrder(ReturnOrderServiceImpl.java:305)
at com.wxh.action.OrderAction.orderInfo(OrderAction.java:695)
at com.wxh.action.OrderAction.execute(OrderAction.java:227)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
展开
 我来答
lijie34504
2011-10-14 · TA获得超过168个赞
知道小有建树答主
回答量:255
采纳率:0%
帮助的人:190万
展开全部
在dao层和service层将异常捕获到向外抛出,action调用的时候捕获该异常进行处理。
追问
能提示一下,具体抛出的例子吗?代码... ....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shuyunxiao520
2011-10-14 · 超过20用户采纳过TA的回答
知道答主
回答量:157
采纳率:0%
帮助的人:60.7万
展开全部
在页面上如果有空的现象的话,可能是对应的名称不同!
追问
调用类为:"+invocation.getAction().getClass().getName()+"\r\n"+"方法为:"+invocation.getProxy().getMethod()

这个是得到抛出来的异常的类名 和方法名称 有没有抛出那个方法的行数的写法呢??
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式