Сценария:Java Assertion в Try с несколькими Фиксаторами
class Assert {
public static void main(String []args) {
try {
assert false;
}
catch (RuntimeException re) {
System.out.println("In the handler of RuntimeException");
}
catch (Exception e) {
System.out.println("In the handler of Exception");
}
catch (Error ae) {
System.out.println("In the handler of Error");
}
catch (Throwable t) {
System.out.println("In the handler of Throwable");
}
}
}
Я ожидаю «В обработчик ошибки», потому что AssertionError является подклассом Error, но он не показывает ничего и прекратить нормально. после этого, чтобы проверить выход, я добавил этот обработчик улова перед обработчиком ошибок.
catch (AssertionError t) {
System.out.println("In the handler of Throwable");
}
в знаю, что это не очень хорошая практика, чтобы поймать ошибку, но если мы не должны поймать, почему программа не разрушилась его работу нормально?