如何在struts2中处理深层嵌套异常?

时间:2012-09-09 21:31:42

标签: exception-handling struts2

我的struts2 webapp使用SQL数据库。在数据库访问代码中,我编写了一个基本的try / catch处理程序来捕获SQL或一般异常,将详细信息写入日志文件,然后继续。类的层次结构如下:

行动方法 - >获取或设置模型上的方法 - >数据库访问。

//Action method in action class
public string doActionMethod() throws Exception
{
    String results = SampleModel.getResults();
}

//Model method in model class
public string getResults() throws Exception
{
    String results = DBLayer.runQuery("SELECT Results FROM SampleTable WHERE Value='1');
}

//Method that queries database in DB access class
public string runQuery() throws Exception
{
    ResultSet rs = null;
    Connection dbConnection = null;
    PreparedStatement preparedStatement = null;     

    dbConnection = MSSQLConnection.getConnection();

    preparedStatement = dbConnection.prepareStatement(sqlQuery);

    //run SQL statements

    return String(rs.get(0));
}

我想抓住异常来冒泡到Action级别,以便我可以将它们转发到适当的错误页面。有没有比在方法签名中添加“抛出异常”更好的方法呢?

1 个答案:

答案 0 :(得分:1)

由于您无法恢复,因此请引发特定于应用程序的RuntimeException

使用标准Struts 2声明性异常处理将您的应用程序带到相应的错误页面。