栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

controller层统一处理异常,初级java工程师面试题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

controller层统一处理异常,初级java工程师面试题

@Order(Ordered.HIGHEST_PRECEDENCE)

public class OverallExceptionHandler {

@ExceptionHandler

public CommonResult handException(Exception e){

return CommonResult.errorResult(ResultCode.SYSTEM_ERROR,e.getMessage());

}

@ExceptionHandler(value = UserException.class)

public CommonResult handUserExceptionHandler(UserException e){

return CommonResult.customErrorResult(null,e.getMessage(),null);

}

@ExceptionHandler(value = HttpMessageNotReadableException.class)

public CommonResult handleHttpMessageNotReadableException(HttpMessageNotReadableException e) {

return CommonResult.errorResult(ResultCode.PARAM_IS_INVALID, e.getMessage());

}

}

复制代码

handException方法主要拦截:没有被拦截处理的异常信息

handUserExceptionHandler:拦截主动抛出的异常信息(这个异常是自己自定义的异常信息)

handleHttpMessageNotReadableException:拦截参数不可读异常

【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】

浏览器打开:qq.cn.hn/FTf 免费领取

这个异常时jdk里面自带的异常(正如上面所说 对于不同的异常 可以做不同的拦截处理,返回的错误信息也可以自己自定义 这样的错误提示能更快定位问题)

  • 2.2 自定义异常

public class UserException extends RuntimeException{

private static final long serialVersionUID = 1L;

private String code;

public UserException() {

super();

}

public UserException(String message) {

super(message);

this.code = ResultCode.EXISTING_ASSOCIATED_DATA.getCode();

}

public UserException(String code, String message){

super(message);

this.code = code;

}

public UserException(String message, Throwable cause) {

super(message, cause);

}

public UserException(Throwable cause) {

super(cause);

}

}

复制代码

自定义异常 有些异常java中可能没包含的异常 自己也可以自定义 这些异常也可用拦截器进行拦截处理 只需要@ExceptionHandler(value = UserException.class)这样就可以拦截到自定义的异常

  • 2.3 controller层写的一个测试方法

@PostMapping(value = “/testException”)

public void test1(){

throw new UserException(“这是我抛出得一个异常”);

}

复制代码

这个异常只是一个测试(自定义的异常) 直接抛除一个异常 这个异常会被统一拦截器做拦截处理 其返回的内容如下(返回了一个标准的json数据格式):

再看一个例子: 这个是java自带的异常 若抛出异常 则回被拦截到handException方法里做相应的处理:

@PostMapping(value = “/testException”)

public void test1() throws FileNotFoundException {

File file = new File(“D:222.pdf”);

FileInputStream inputStream = new FileInputStream(file);

复制代码

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/423870.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号