中途接手了一个struts项目,在做异常处理时,发现struts自带的异常处理功能没法启用,在苦苦查找了半天的原因后,决定放弃,改由自己实现异常处理。该异常处理方式类似于struts的异常处理机制。
首先,为自己要处理的异常进行分类,并实现相应的异常类,这里展示一个异常类的实现。
该类集成了Exception类,并实现了四个构造函数,其中前两个构造函数为继承Exception的构造函数,第三个构造函数会在初始化时记录异常信息的信息;第三个构造函数会在初始化时记录用户自定义异常信息以及异常的详细信息。
另外,CREATE_EXCELFILE_ERROR,WRITE_EXCEL_ERROR,ERROR用于定义自定义异常信息的名称。他们会在该异常类初始化时作为message传入。
然后,定义异常的处理类,处理代码如下:
接下来即使,将异常及异常处理方式绑定了:
最后就是在struts-config.xml中定义异常及其处理页面的隐射,以及异常页面的实现(注意,异常页面的实现就是通过getAttribute获取“error”和"errorInfo"并展示到页面即可)