SpringBoot:@SneakyThrows注解

郎家岭伯爵 2024年02月18日 467次浏览

前言

在学习过程中遇到 @SneakyThrows 注解,学习记录一下。

实现

理论部分

在代码中遇到异常时,我们通常会直接 throw 抛出异常,或者使用 try...catch()... 来捕获异常,这两者均需要我们手动来“处理”(注意这里的“处理”仅仅是抛出或者捕获,并没有真正意义上处理)。

Lombok@SneakyThrows 注解可以帮我们忽略对异常的处理,使代码更加简洁。

实践部分

例如我们在一段实现“等待功能”的代码中,我们需要对异常进行捕获:

@GetMapping("/t7")
public void test7(){
    try {
        Thread.sleep(1000);
    } catch (Exception e){
        System.out.println(e.getMessage());
    }
}

或者直接把异常抛出:

@GetMapping("/t7")
public void test7() throws InterruptedException {
    Thread.sleep(1000);
}

而使用 @SneakyThrows 注解则可以简化代码,忽略对异常的处理

@GetMapping("/t7")
@SneakyThrows
public void test7(){
    Thread.sleep(1000);
}

总结

学习记录一下 @SneakyThrows 注解。