Lombok基本注解之@SneakyThrows的作用
@SneakyThrows注解是由lombok封装的,为代码生成一个try…catch块,并把异常向上抛出来
使用范围: 只能作用在方法和构造函数之上
java中常见的异常有两种:
Exception即非运行时异常(编译异常)。
RuntimeException即运行时异常。
第一种会强制要求抛出它的方法声明throws,如果不处理,程序不能编译通过。
事实上,大部分情况下,处理Exception的常见手段就是外面包一层RuntimeException,接着往上抛。
try {
} catch (Exception e) {
throw new RuntimeException(e);
}
Lombok的@SneakyThrows就是为了消除这样的模板代码。
使用注解后不需要担心Exception的处理
@SneakyThrows
public void utf8ToString(byte[] bytes) {
return new String(bytes, "UTF-8");
}
真正生成的代码
public void utf8ToString(byte[] bytes) {
try {
return new String(bytes, "UTF-8");
} catch (Exception e) {
throw Lombok.sneakyThrow(e);
}
}