Java Lombok | throws 자동 지정 - @SneakyThrows
@SneakyThrows
@SneakyThrows
어노테이션을 메소드에서 선언하면, 체크 예외가 내부에서 발생되어도 throws
를 넣지 않아도 된다.
- sneaky 는 “몰래"라는 뜻이다.
package com.devkuma.tutorial.lombok;
import lombok.SneakyThrows;
public class SneakyThrowsTutorial {
public static void main(String[] args) {
method();
}
@SneakyThrows
private static void method() {
throw new Exception("test");
}
}
실행 결과
Exception in thread "main" java.lang.Exception: test
at com.devkuma.tutorial.lombok.SneakyThrowsTutorial.method(SneakyThrowsTutorial.java:12)
at com.devkuma.tutorial.lombok.SneakyThrowsTutorial.main(SneakyThrowsTutorial.java:7)
지정한 예외만 무시
package com.devkuma.tutorial.lombok;
import lombok.SneakyThrows;
import java.io.IOException;
public class SneakyThrowsTutorial2 {
public static void main(String[] args) {
method();
}
@SneakyThrows(IOException.class)
private static void method() {
try {
throw new Exception("test");
} catch (Exception e) {
// catch가 없으면 에러가 발생한다.
}
throw new IOException();
}
}
실행 결과
Exception in thread "main" java.io.IOException
at com.devkuma.tutorial.lombok.SneakyThrowsTutorial2.method(SneakyThrowsTutorial2.java:20)
at com.devkuma.tutorial.lombok.SneakyThrowsTutorial2.main(SneakyThrowsTutorial2.java:9)
value
로 예외 Class 객체를 전달하여, 지정한 예외만 무시할 수 있게 된다.
최종 수정 : 2024-01-18