1、java后台处理机制为前提
2、通过SpringMVC处理
<context:annotation-config />
<context:component-scan base-package="com.boco" />
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" >
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
</list>
</property>
</bean>
<!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/" p:suffix=".jsp" />
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:defaultEncoding="utf-8" />
<!-- 全局异常配置 start -->
<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionAttribute" value="msg"/>
<property name="exceptionMappings">
<props>
<prop key="java.lang.Exception">errors/500</prop>
<prop key="java.lang.Throwable">errors/404</prop>
<prop key="java.lang.RuntimeException">/commons/errorPage</prop>
<prop key="java.sql.SQLException">/commons/errorPage</prop>
</props>
</property>
<property name="statusCodes">
<props>
<prop key="errors/500">500</prop>
<prop key="errors/404">404</prop>
</props>
</property>
<!-- 设置日志输出级别,不定义则默认不输出警告等错误日志信息 -->
<property name="warnLogCategory" value="BUSI" />
<!-- 默认错误页面,当找不到上面mappings中指定的异常对应视图时,使用本默认配置 -->
<property name="defaultErrorView" value="errors/500" />
<!-- 默认HTTP状态码 -->
<property name="defaultStatusCode" value="500" />
</bean>
<!-- 全局异常配置 end -->
3、dwr*.xml配置
<dwr>
<allow>
<convert converter="bean" match="java.util.*" />
<convert converter="bean" match="com.boco.core.cache.*" />
<convert converter="bean" match="com.boco.flow.model.*" />
<convert converter="bean" match="com.boco.flow.pojo.*" />
<convert converter="bean" match="com.boco.resconf.common.sheet.pojo.*" />
<convert match="java.lang.Exception" converter="exception">
<param name=‘include‘ value=‘message‘ />
</convert>
<convert match="java.lang.RuntimeException" converter="exception">
<param name=‘include‘ value=‘message‘ />
</convert>
..........
DWREngine.setErrorHandler(function(error){
error=FilterChar.filterChinese(error);//去掉错乱英文提示
if(error==‘‘)
error=‘发生未知异常‘;
if(error && error != ‘‘) {
if(error==‘Unauthorized‘){
window.location.href= ctx+‘/login.jsp‘;
}else {
if(error!=‘语法错误‘){
if(error.indexOf(‘SqlMapClient‘) != -1){
if(Ext){
Ext.Msg.alert("程序运行异常", error);
}else{
alert("程序运行异常,请联系管理员:"+error);
}
}else{
var n = error.lastIndexOf(‘Exception:‘);
if(n != -1) {
error = error.substring(n+10);
}
try {
Ext.Msg.alert("业务异常", error);
}catch(e) {
alert(error);
}
}
}
4、完整扑捉异常结合ajax推送到前台处理
原文:http://www.cnblogs.com/qq610039525/p/6374469.html