Thring Catch에서 Throwable과 Exception의 차이점
-
20-09-2019 - |
문제
때때로 나는 본다
try {
} catch(Throwable e) {
}
그리고 어떨 때에는
try {
} catch(Exception e) {
}
차이점은 무엇입니까?
해결책
잡아서 Throwable
여기에는 서브 클래스가 포함됩니다 Error
. 당신은 일반적으로 그렇게 할 수있는 모든 것을 기록하거나 처리하려는 스레드의 가장 높은 "Catch"레벨을 제외하고는 일반적으로 그렇게해서는 안됩니다. Framework 유형 응용 프로그램 (예 : 응용 프로그램 서버 또는 테스트 프레임 워크)에서 더 일반적으로 알려지지 않은 코드를 실행할 수 있고 영향을받지 않아야합니다. 아무것 그것은 가능한 한 그 코드에 문제가 있습니다.
다른 팁
Throwable
슈퍼 클래스입니다 Exception
만큼 잘 Error
. 정상적인 경우 우리는 항상 하위 클래스를 잡아야합니다 Exception
, 근본 원인이 손실되지 않도록합니다.
Java 코드를 제어하지 않는 문제가 발생할 가능성이있는 특별한 경우에만 잡아야합니다. Error
또는 Throwable
.
나는 기본 라이브러리가로드되지 않았다는 것을 깃발하기 위해 던질 수있는 것을 기억합니다.
Thowable
실제로 모든 것을 잡는다. Thread.stop()
방법. 그래서 잡아서 Throwable
적어도 캐치 블록을 통과하지 않고는 시도 블록을 떠나지 않을 것이라고 확신 할 수 있지만 처리 할 준비가되어 있어야합니다. OutOfMemoryError
그리고 InternalError
또는 StackOverflowError
.
매력 있는 것 Throwable
모든 종류의 요청을 외부 코드에 위임하는 외부 서버 루프에 가장 유용하지만 서비스를 계속 유지하기 위해 결코 종료되지 않을 수 있습니다.