728x90
fillInStackTrace 정의
public Throwable fillInStackTrace()
- 이 메서드는 Throwable 클래스에 정의되어 있으며, 모든 예외 클래스(Exception, Error)의 부모 클래스이기 때문에 예외 관련 객체에서 사용할 수 있습니다.
- fillInStackTrace()를 호출하면 현재 위치에서의 스택 트레이스를 다시 기록합니다.
- 일반적으로 예외를 재사용하거나, 예외를 다른 형태로 변환할 때 사용됩니다.
public class Example {
public static void main(String[] args) {
try {
throwException();
} catch (Exception e) {
e.fillInStackTrace(); // 현재 스택 트레이스로 덮어씀
e.printStackTrace(); // 덮어쓴 스택 트레이스를 출력
}
}
static void throwException() throws Exception {
throw new Exception("예외 발생!");
}
}
사용 시 주의사항
- fillInStackTrace()는 비용이 비쌀 수 있음 (스택 정보를 새로 생성).
- 대부분의 경우, 이 메서드를 직접 호출할 필요는 없습니다.
- 예외를 wrap할 때나, 커스텀 예외 처리에서 스택 트레이스를 재설정하고 싶을 때 사용됩니다.
fillInStackTrace를 통하여 스택트레이스를 제거하는 방법
class MyException extends Exception {
public MyException(String message) {
super(message);
}
@Override
public synchronized Throwable fillInStackTrace() {
return this; // 스택 트레이스 무시
}
}
728x90
'Programming > JAVA' 카테고리의 다른 글
JAVA JCA(Java Cryptography Architecture)의 개념 (0) | 2025.04.21 |
---|