文章目录
- 注解的介绍
- 具体示例
注解的介绍
@SneakyThrows 是 Lombok 框架提供的一个注解,它可以用于在方法中抛出受检异常时,不用显式地对异常进行处理,而是将异常包装成 RuntimeException 抛出
使用 @SneakyThrows 注解后,编译器会帮你自动将受检异常转换为非受检异常,这样就省去了手动编写 try-catch 语句的麻烦。会将整个方法都包在 try-catch 之中。
需要注意 ,在使用该注解时应该谨慎,因为它可能会掩盖异常的实际问题或导致不可预期的错误
具体示例
import lombok.SneakyThrows;
/**
readFile 方法中使用了 @SneakyThrows 注解,并且在方法体中使用了 new FileReader(path) 这个受检异常。
由于有了@SneakyThrows 注解的存在,我们就不需要在方法中显式地对该异常进行处理了,而是直接将其包装成 RuntimeException 抛出。*/
public class Example {@SneakyThrowspublic void readFile(String path) {BufferedReader reader = new BufferedReader(new FileReader(path));String line;while ((line = reader.readLine()) != null) {System.out.println(line);}reader.close();}
}
编译后其实就是
public class Example {public void readFile(String path) {try{BufferedReader reader = new BufferedReader(new FileReader(path));String line;while ((line = reader.readLine()) != null) {System.out.println(line);}reader.close();}catch(Exception e) {...} }
}