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);
    }
}    
 
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐