catch 블록에서 예외를 처리할 때, 하위 클래스의 예외를 먼저 잡고, 그 다음에 상위 클래스의 예외를 잡는 순서는 체크 예외(checked exception)뿐만 아니라 언체크 예외(unchecked exception)에도 마찬가지로 적용되나요? 심지어 두개의 catch 블록이 실제 catch 를 못한다고 하더라도 애당초 compile error 가 발생하는 문제이기 때문에 항상 예외없이 클래스의 예외를 먼저 잡고, 그 다음에 상위 클래스의 예외를 잡는 순서로 진행해야 하나요 ?