정보를 스택 추적/예외에 추가하고 싶습니다. 기본적으로 내가 정말 좋아 지금 같은 이런 일을 가지고예외 정보 추가
: 나는 여전히 원래 스택을하면서, 그 예외를 잡아에 추가로 정보를 추가 할 그러나
Exception in thread "main" java.lang.ArithmeticException:/by zero
at com.so.main(SO.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
자취.
예를 들어, 나는 그것을 가지고 싶습니다
Exception in thread "main" CustomException:/by zero (you tried to divide 42 by 0)
at com.so.main(SO.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
을 그래서 기본적으로 내가 을 첨가 arithmeticexception이와 다시 throw, 말하는 CustomException을 (잡으려면를 "당신은 (는) 0 (42)을 분할하는 시도" 이 예제에서는 스택 추적을 원본 ArithmeticException에서 계속 유지합니다.
Java에서이 작업을 수행하는 올바른 방법은 무엇입니까?
try {
....
} catch (ArithmeticException e) {
throw new CustomException("You tried to divide " + x + " by " + y, e);
}
예외를 던진 사람이 아닌 경우 어떻게 예외 사실을 알 수 있습니까? – Falmarri
@Falmarri : 특수성을 모르지만 메소드 매개 변수와 같은 추가 정보를 추가 할 수 있습니다. 내 질문 끝에 예제를 추가했습니다. – NoozNooz42
일반적으로이 정보는 디버깅에만 유용합니다. 또한 디버거를 사용하여 프로그램을 디버깅하고 예외에 중단 점을 배치 할 수 있습니다. 예외가 발생하면 원인이 된 조건이 표시됩니다. –