ExceptionHandler处理异常返回????????

这几天在学习Spring Boot+Vue全栈开发实践 的@RestControllerAdvice和@ExceptionHandler注解, 照着书本的敲完之后运行,  返回的一堆?????????

@RestControllerAdvice
public class CustomExceptionHandler {
    @ExceptionHandler(MaxUploadSizeExceededException.class)
    public void uploadException(MaxUploadSizeExceededException e , HttpServletResponse response) throws IOException {
        response.setContentType("text/html:charset=GBK");
        final PrintWriter out = response.getWriter();
        out.write("上传文件大小超出限制");
        out.flush();
        out.close();
    }
}

我问马老师发生什么事了, 马老师一看, 哦 原来是charset没改过来 , 上来就是一个右边扫(指f12).

 应该是这样才对, 分号;写成了冒号:

response.setContentType("text/html;charset=GBK");

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Spring Boot提供了多种方式来处理异常,包括全局异常处理、自定义异常和统一异常处理等。 1. 全局异常处理 全局异常处理是指通过`@ControllerAdvice`注解定义一个全局异常处理器,来处理整个应用程序中的异常。全局异常处理器可以处理所有控制器中抛出的异常,包括未被捕获的异常。全局异常处理器通常会返回一个错误页面或JSON数据,提示用户出现了异常。 ```java @ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(Exception.class) public ModelAndView handleException(Exception e) { ModelAndView mav = new ModelAndView("error"); mav.addObject("message", e.getMessage()); return mav; } } ``` 2. 自定义异常 自定义异常是指通过继承`RuntimeException`或其子类来定义自己的异常类。自定义异常通常包含一些业务相关的信息,比如错误码、错误信息等。在抛出异常时,可以使用自定义异常类来传递这些信息。 ```java public class MyException extends RuntimeException { private int code; private String message; public MyException(int code, String message) { this.code = code; this.message = message; } // getter & setter } ``` ```java @GetMapping("/{id}") public User getUser(@PathVariable Long id) { User user = userRepository.findById(id) .orElseThrow(() -> new MyException(404, "User not found")); return user; } ``` 3. 统一异常处理 统一异常处理是指通过继承`ResponseEntityExceptionHandler`类,重写其方法来实现异常处理。统一异常处理可以根据不同的异常类型,返回不同的HTTP状态码和错误信息。 ```java @RestControllerAdvice public class RestExceptionHandler extends ResponseEntityExceptionHandler { @ExceptionHandler(MyException.class) public ResponseEntity<Object> handleMyException(MyException e) { ErrorResponse errorResponse = new ErrorResponse(e.getCode(), e.getMessage()); return new ResponseEntity<>(errorResponse, HttpStatus.NOT_FOUND); } @ExceptionHandler(Exception.class) public ResponseEntity<Object> handleException(Exception e) { ErrorResponse errorResponse = new ErrorResponse(500, "Internal server error"); return new ResponseEntity<>(errorResponse, HttpStatus.INTERNAL_SERVER_ERROR); } } ``` 总之,Spring Boot提供了多种方式来处理异常,包括全局异常处理、自定义异常和统一异常处理等。开发者可以根据自己的需求选择合适的方式来处理异常
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值