Spring异常与拦截

springmvc监听异常,监听当前controller的异常,

再controller中写入这个被@ExceptionHandler 注释的方法

@ExceptionHandler(Exception.class)//exception.class 表示所有的异常

public ModelAndView MyhandlerExcepion(Exception exception){

      System.out.println(“当前controller发生异常,异常为”+exception.getMessage());

}

Public void test(){
int a = 0;

        Int c = a/c;

}

运行代码在会话栏中出现System 打印的异常信息

全局异常:被@ControllerAdvice注释的类,会接受指定包中的各种异常,

相同的用@ExceptionHandler 来处理可能触发的不同的异常

ObjectMapper objectmapper = new ObjectMapper();

@ExceptionHandler(Exception.class)

public ModelAndView returnException(HttpServletRequest req,HttpServletResponse resp,Exception exception){

String title = exception.getClass().getName();
    String msg= exception.getMessage;

StringBuffer stringbuffer = new StringBuffer();

String returnType= req.getHeader(“X-Requested-With”);

String conType = req.getContentType()==nul?””:req.getContentType().toLowerCase();

If(conType.contains(“application/json;”)||(returnType!=null&& returnType.equalsIgnoreCase(“XMLHttpRequest”))){

JsonMsg jsonmsg= new Jsonmsg();

jsonmsg.setMsg(msg);

jsonmsg.setCode(-1);

Jsonmsg.setState(true);

for(StackTraceElement st:Exception.getStackTrace()){

   stringbuffer.append(st.toString());

   stringbuffer.append(File.separator);

}

jsonmsg.setData(stringbuffer);

try{

  PrintWriter writer = resq.getWriter();

  writer.write(objectmapper .writerValueAsString(jsonmsg));

}

    return new ModelAndView();

}else{

for(StackTraceElement st:Exception.getStackTrace()){

    stringbuffer.append(st.toString());

    stringbuffer.append(“<br>”);

}

ModelAndView mv = new ModelAndView(“/handlerException/errorPage”);

mv.addObject(“msg”,msg);

mv.addObject(“title”,title);

mv.addObject(“stringbuffer”,stringbuffer);

return mv;

}

}

监听全局异常 实现HandlerExceptionResolver 进行监听全局异常;

在配置文件中监听全局异常

 <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">

        <property name="defaultErrorView" value="/simpleError/simpleDefaultErr"/>

        <property name="exceptionAttribute" value="ex"/>

        <property name="exceptionMappings">

            <props>

                <!--Key为需要特殊指定的异常完整类名,prop元素中指定页面的路径-->

                <!--文件上传相关异常-->

                <prop key="org.springframework.web.multipart.MultipartException">/simpleError/simpleDefaultErr

</prop>

                <prop key="java.lang.ArithmeticException">/simpleError/arithmeticErr</prop>

            </props>

        </property>

</bean>

拦截器,在配置文件中配置拦截

<mvc:interceptors>

  <mvc:interceptor>

     <mvc:Mapping path=”/**”/>   

</mvc:interceptor>

</mvc:interceptors>

Mybatis:

官方描述:MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis

免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解

来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中

的记录。

配置mybetis

<configuration>

<properties resource=”java.properties”/>

<setting>

    <setting name=”logImpl” value=”STDOUT_LOGGING”/>

</setting>

<environments default=”developmet”>

   <environment id=”development”>

     <transactionMapper tupe=”JDBC”/>

     <dataSource type=”POOLED”>

                <property name="driver" value="${driver}"/>

                <property name="url" value="${url}"/>

                <property name="username" value="${username}"/>

                <property name="password" value="${password}"/>

</dataSource>

   </environment>

</environments>

<mappers>

        <mapper resource="cn/th/mapping/SysZhuanyeMapper.xml"></mapper>

    </mappers>
</configuration>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值