@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;
}
}