SpringMVC的异常处理示例

2023-05-14 11:33:18 浏览数 (1)

异常处理的示例

接下来,我们将通过一个完整的示例来演示如何使用SpringMVC处理异常。假设我们正在开发一个用户注册应用程序,如果用户在注册过程中输入了无效的电子邮件地址,我们需要捕获并处理该异常。

以下是一个使用@ExceptionHandler注解处理无效电子邮件地址异常的示例:

代码语言:javascript复制
@Controller
public class UserController {

  @PostMapping("/register")
  public ResponseEntity<String> registerUser(@RequestParam String email, @RequestParam String password) throws InvalidEmailException {
    if(!isValidEmail(email)) {
      throw new InvalidEmailException("Invalid email address.");
    }
    // 用户注册逻辑
    return ResponseEntity.ok("User registered successfully.");
  }

  @ExceptionHandler(InvalidEmailException.class)
  public ResponseEntity<String> handleInvalidEmailException(InvalidEmailException ex) {
    return ResponseEntity
            .status(HttpStatus.BAD_REQUEST)
            .body(ex.getMessage());
  }

  private boolean isValidEmail(String email) {
    // 验证电子邮件地址是否有效
    return true;
  }

  public static void main(String[] args) {
    SpringApplication.run(UserController.class, args);
  }
}

class InvalidEmailException extends Exception {
  public InvalidEmailException(String message) {
    super(message);
  }
}

在这个示例中,我们定义了一个UserController控制器类,其中包含一个名为registerUser的方法,该方法接受email和password两个请求参数。如果email参数不是有效的电子邮件地址,该方法将抛出一个InvalidEmailException异常。我们还定义了一个handleInvalidEmailException方法来处理InvalidEmailException异常。当应用程序发生此异常时,handleInvalidEmailException方法将返回一个HTTP状态码为400的响应,并将异常消息包含在响应体中。

在最后部分的代码中,我们还定义了一个InvalidEmailException异常类来表示无效的电子邮件地址异常。这个异常类扩展了Exception类,并带有一个String类型的message属性,用于存储异常消息。

0 人点赞