java中常见的异常有两种:Exception即非运行时异常(编译异常)、RuntimeException即运行时异常。
对于Exception即非运行时异常(编译异常),必须要开发者解决以后才能编译通过,解决的方法有两种,
1、throw到上层,
2、try-catch处理。
对于RuntimeException即运行时异常,在代码中可能会有RunTimeException,但是Java编译检查时是不会告诉你有这个异常的,它会在实际运行代码时则会暴露出来,比如经典的1/0,空指针等。
@SneakyThrows注解是由lombok中封装的注解,它就是为了消除上面那种抛出异常的模板代码。使用注解后,在编译时,自动将注解替换为try-catch。
@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);
}
}
版权归原作者 明湖起风了 所有, 如有侵权,请联系我们删除。