请问一下在java中自定义异常拦截器(不要使用其他框架,如spring),怎么拦截?

如题所述

第1个回答  2012-03-05
public class MyException extends Exception{
public MyExceprion(){
System.out.println("自定义异常");
}
}

try catch(MyException e){
}

当然 你也可以定义一个拦截器放在web.xml
那你就要继续实现 filter 接口了 继承Exception 实现 Filter 接口 那不就完了
implements Filter

public class CharFilter implements Filter {
private String encode;
public void destroy() {

}
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain fc) throws IOException, ServletException {
HttpServletRequest request=(HttpServletRequest)req;
HttpServletResponse response=(HttpServletResponse)resp;
request.setCharacterEncoding(this.encode);
response.setCharacterEncoding(this.encode);
fc.doFilter(request,response);
}

public void init(FilterConfig arg0) throws ServletException {
this.encode=arg0.getInitParameter("encode");//��xml��init-param
}

}

web.xml中 配置拦截器
<filter>
<filter-name>CharFilter</filter-name>
<filter-class>neusoft.team101.dms.common.filter.CharFilter</filter-class>
<init-param>
<param-name>encode</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>追问

请问一下,我不做web项目,就建一个简单的java项目,没有web.xml 文件,又该怎么实现呢?
谢谢!

追答

既然你要用拦截器 那就只能在你的java 文件里调用实例这个拦截器异常类了

追问

有没有像代理模式那种,我在一个统一的地方处理呢?

追答

那就没见过了

追问

在debug跟踪异常时,它们都会进入Thread 中的 private void dispatchUncaughtException(Throwable e) {
getUncaughtExceptionHandler().uncaughtException(this, e);
}

有那种面向切面的思想,可以在调用上面的那个方法之前捕获应该就可以。

第2个回答  2012-03-06
spring AOP就行了,设置好。。百度里输入springAOP就有答案了,用dom4j也行追问

我的意思,有没有那种方法不适用任何框架,就纯java代码进行实现?

追答

dom4j+反射机制,或者单纯的反射机制就行了。。,dom4j是用来读取xml里的内容的,你的配置信息写在里面,如果单纯的反射机制,写起来很臃肿,太多重复代码了。。。

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网