SneakyThrows注解


@SneakyThrows直接把捕获异常的代码嵌入到了class文件里。
也就是说,并不是我们忽略了异常,而是类似于Lombok的@Data注解,在编译时就已经把处理的代码嵌入到了class内。

用法:

@SneakyThrows
public static void main(String[] args) {
    Class clz = Class.forName("com.woshild.derek_ld.lombok.SneakyThrowsTest");
    System.out.println(clz.getName());

    Thread.sleep(3000);
    System.out.println("3秒已过。。。");
}

编译生成的class文件:

public static void main(String[] args) {
    try {
        Class clz = Class.forName("com.woshild.derek_ld.lombok.SneakyThrowsTest");
        System.out.println(clz.getName());
        Thread.sleep(3000L);
        System.out.println("3秒已过。。。");
    } catch (Throwable var2) {
        throw var2;
    }
}

文章作者: zhou22
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 zhou22 !
  目录