ajax返回
package com.dl.ExceptionTest;
import com.alibaba.fastjson.JSONObject;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import javax.servlet.http.HttpServletRequest;
/**
* @author xingguanghui
* @create 2018-04-03 10:51
**/
@RestControllerAdvice
public class ExceptionHandler {
@org.springframework.web.bind.annotation.ExceptionHandler(value = Exception.class)
public Object defaultHandler(HttpServletRequest req,Exception e){
JSONObject object = new JSONObject();
object.put("code","500");
object.put("msg",e.getMessage());
return object;
}
}
返回页面
package com.dl.ExceptionTest;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @author xingguanghui
* @create 2018-04-03 11:05
**/
@ControllerAdvice
public class ExceptionHandler1 {
@ExceptionHandler(value = Exception.class)
public Object errHandler(HttpServletRequest req, HttpServletResponse rsp,Exception e) throws Exception{
e.printStackTrace();
ModelAndView model = new ModelAndView();
model.addObject("exception",e);
model.addObject("url",req.getRequestURL());
model.setViewName("error");
return model;
}
}
判断请求是不是ajax请求
/**
* 判断请求是否是ajax请求
* @param req
* @return
*/
public static boolean isAjax(HttpServletRequest req){
String header = req.getHeader("X-Requested-With");
return (header != null && "XMLHttpRequest".equals(header));
}
集成两种返回
package com.dl.ExceptionTest;
import com.alibaba.fastjson.JSONObject;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
/**
* @author xingguanghui
* @create 2018-04-03 10:51
**/
@RestControllerAdvice
public class ExceptionHandler {
@org.springframework.web.bind.annotation.ExceptionHandler(value = Exception.class)
public Object defaultHandler(HttpServletRequest req,Exception e){
e.printStackTrace();
if(isAjax(req)){
JSONObject object = new JSONObject();
object.put("code","500");
object.put("msg",e.getMessage());
return object;
}else{
ModelAndView model = new ModelAndView();
model.addObject("exception",e);
model.addObject("url",req.getRequestURL());
model.setViewName("error");
return model;
}
}
/**
* 判断请求是否是ajax请求
* @param req
* @return
*/
public static boolean isAjax(HttpServletRequest req){
String header = req.getHeader("X-Requested-With");
return (header != null && "XMLHttpRequest".equals(header));
}
}
转载于:https://my.oschina.net/u/3560494/blog/1789111
分享到:
相关推荐
Springboot全局异常处理demo 项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的、不可预知的异常需要处理。每个过程都单独处理异常,系统的...
在Spring Boot应用中,全局异常处理是至关重要的一个部分,它能确保系统在遇到错误时,仍然能够优雅地响应客户端,提供友好的错误信息,而不是返回默认的、未经处理的堆栈跟踪。本教程将详细介绍如何在Spring Boot中...
try catch语句和Springboot全局异常捕获机制都是异常处理机制,但它们的使用场景和目的不同。try catch语句通常用于捕获和处理特定的业务逻辑异常,而Springboot全局异常捕获机制则用于捕获和处理应用程序中的所有未...
Spring Boot 全局异常处理代码实例 Spring Boot 全局异常处理代码实例是指在 Spring Boot 项目中,如何使用全局异常处理机制来捕捉和处理异常。全局异常处理机制可以避免项目中出现大量冗余的代码,提高代码的...
1.复制粘贴即用,返回对应的HTTP状态码。 2.可自行扩展拦截其他异常。 3.日志打印用的是lombok。 4.R类为返回类。 5.获取异常文件名,获取异常行数
springboot-global-exception springboot全局异常处理
本篇文章主要介绍了springboot全局异常处理详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Springboot全局异常处理、JSR303参数校验,具体详见: https://blog.csdn.net/herojuice/article/details/85788681
springboot后端全局异常处理及quartz整合源码,适合springboot初学者学习参考,希望可以帮到你!
* SpringBoot全局异常处理机制 * 使用@ControllerAdvice或@RestControllerAdvice来实现全局异常处理 * 自定义异常类继承自Exception类 * 使用@ExceptionHandler注解来指定要捕获的异常类型 * 使用@ReponseBody注解来...
在Spring Boot框架中,全局异常处理是不可或缺的一部分,它使得我们的应用更加健壮,能够优雅地处理各种可能出现的错误情况。下面将详细讲解Spring Boot如何实现全局异常拦截,并结合给出的"spring-boot-01"文件,...
springboot定义统一返回格式及全局异常处理。springboot定义统一返回格式及全局异常处理。
1. **全局异常处理**: SpringBoot允许我们定义全局的异常处理器,通常通过使用`@RestControllerAdvice`注解的类来实现。这样可以捕获并处理所有控制器方法抛出的异常,包括自定义异常和系统内置异常。例如,我们可以...
使用SpringBoot的全局异常处理机制,我们可以优雅地处理异常,使代码更加简洁、可读性更好。同时,这种方式也可以减少代码重复,提高开发效率。 结论 本文详细介绍了如何在SpringBoot中优雅地处理全局异常。通过...
统一异常处理会区分前端是否ajax请求,自动返回json数据格式,要求开发人员在处理ajax请求时统一封装成一个对象返回,以符合代码统一规范。 此工程在idea环境编写,导入请自己新建工程手工复制代码导入。
Springboot之自定义全局异常处理的实现 Springboot之自定义全局异常处理的实现是指在Springboot框架中,通过自定义异常处理器来捕获和处理全局异常的方法。这种方法可以帮助开发者更好地处理程序中的异常,提高...
springboot全局异常处理,入参出参及错误日志打印