温馨提示×

java controller 如何处理异常

小樊
166
2024-06-15 13:51:33
栏目: 编程语言

在Java控制器中处理异常通常有以下几种方式:

  1. 使用try-catch块捕获异常并处理:在控制器方法中使用try-catch块来捕获可能抛出的异常,并在catch块中处理异常,比如打印异常信息或返回错误信息给客户端。
@GetMapping("/example")
public ResponseEntity<String> example() {
    try {
        // 业务逻辑代码
        return ResponseEntity.ok("Success");
    } catch (Exception e) {
        // 处理异常
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("An error occurred");
    }
}
  1. 使用@ControllerAdvice注解和@ExceptionHandler注解统一处理异常:通过在控制器类上添加@ControllerAdvice注解和在方法上添加@ExceptionHandler注解,可以实现统一处理异常的功能。
@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)
    public ResponseEntity<String> handleException(Exception e) {
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("An error occurred");
    }
}
  1. 使用@ControllerAdvice和@ExceptionHandler处理特定类型的异常:可以根据具体的异常类型来定义不同的异常处理方法。
@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(IOException.class)
    public ResponseEntity<String> handleIOException(IOException e) {
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("An IO error occurred");
    }

    @ExceptionHandler(SQLException.class)
    public ResponseEntity<String> handleSQLException(SQLException e) {
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("A SQL error occurred");
    }
}

通过以上方式,可以在Java控制器中灵活处理异常,提高系统的稳定性和可靠性。

0