Java Struts2异常处理用法?

Java Struts2异常处理用法?,java,jsp,exception-handling,struts2,Java,Jsp,Exception Handling,Struts2,下面是我的Action类,其中getstpnameidmap抛出ReqMgmtException异常(自定义异常) 公共字符串findTspNameIdMap(){ SlsReqMgmtCommonRemote SlsReqMgmtCommonRemote=null; tspNameIdMap=newhashmap(); 试一试{ slsReqMgmtCommonRemote=getSlsReqMgmtCommonRemote(); tspNameIdMap=slsReqMgmtCommonRe

下面是我的
Action
类,其中
getstpnameidmap
抛出
ReqMgmtException
异常(自定义异常)

公共字符串findTspNameIdMap(){
SlsReqMgmtCommonRemote SlsReqMgmtCommonRemote=null;
tspNameIdMap=newhashmap();
试一试{
slsReqMgmtCommonRemote=getSlsReqMgmtCommonRemote();
tspNameIdMap=slsReqMgmtCommonRemote.getTspNameIdMap(gmatherholdparameters.getId().getCircleId());
}
捕获(ReqMgmtException rEx){
addActionError(rEx.getError());
result=“error”;
返回误差;
}
捕获(例外e){
addActionError(“处理请求时出错。请与管理员联系”);
e、 printStackTrace();
System.out.println(“[ConfigureTspThresholdAction:findTspNameIdMap函数]:在构造函数内的catch!!”;
result=“error”;
返回误差;
}
回归成功;
}
我知道Struts2中也有异常处理,但目前我没有使用它。
我应该使用Struts2异常处理吗?它的用途是什么?

您应该在Struts2中使用异常处理机制,这就是
异常
拦截器提供的。此外,您还应该像在问题中一样处理action方法中的异常。如果它能很好地处理所有异常,那么异常处理程序就可以处理它。另外,在一些没有
抛出异常
签名的方法中,您只能捕获异常,但不能返回
错误
结果。因此,重新引发异常并由拦截器处理它是一种解决方法

参考文献:

您是否“应该”使用S2的声明性异常处理完全取决于您的需要。它用于处理不希望直接在应用程序代码内部处理的异常。
public String findTspNameIdMap(){

        SlsReqMgmtCommonRemote slsReqMgmtCommonRemote = null;
        tspNameIdMap = new HashMap<String, String>();

        try{
            slsReqMgmtCommonRemote = getSlsReqMgmtCommonRemote();
            tspNameIdMap = slsReqMgmtCommonRemote.getTspNameIdMap(gmaThresholdParameters.getId().getCircleId());

        }
        catch(ReqMgmtException rEx){
            addActionError(rEx.getError());
            result = "error";
            return ERROR;
        }
        catch (Exception e){    
            addActionError("Error in processing your request. Contact Administrator");
            e.printStackTrace();
            System.out.println("[ConfigureTspThresholdAction: findTspNameIdMap Function]:In catch Inside Constructor!!");
            result = "error";
            return ERROR;
        }
        return SUCCESS;
    }