1.ExceptionHandler,此形式只对本身controller有效
@Controller
public class MyExceptionHandler{
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
@ExceptionHandler(RuntimeException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ResponseBody
public User processMethod(Exception ex, HttpServletRequest request , HttpServletResponse response) throws IOException {
System.out.println(“抛异常了!”+ex.getLocalizedMessage());
logger.error(“抛异常了!”+ex.getLocalizedMessage());
//可以返回页面或者返回json形式
return new User(“123”,”123”);
//return “hello”;
}
@RequestMapping(“exception”)
public String getException(){
String name = null;
System.out.println(“制造异常~~~~~~~~~~~~~~~~~~~~~~~~”);
System.out.println(name.length());
return “hello”;
}
}
全局有效,另外controller中有异常,在这里可以处理
@ControllerAdvice
public class SpringExceptionHandler{
@ExceptionHandler(value = {Exception.class})
public ResponseEntity handleOtherExceptions(final Exception ex, final WebRequest req) {
TResult tResult = new TResult();
tResult.setStatus(CodeType.V_500);
tResult.setErrorMessage(ex.getMessage());
return new ResponseEntity(tResult,HttpStatus.OK);
}
}
2.也可以使用切面,如:api使用切面,使用切面的异常通知类型
异常处理
最新推荐文章于 2024-01-24 16:36:45 发布