Я просто пытаюсь понять это немного лучше.
Я понимаю, что существует множество различных типов исключений , и согласно некоторому прочтению, которое я сделал, все типы исключений перехватываются Исключением. Прежде всего, могу ли я быть уверен, что это правда?
try{
...
}
catch(Exception x){
//No matter what fails in the try block, x
//will always have a value since all exception
//types are caught under Exception? I guess
//What I really want to know, is will this ever
//Fail?
}
catch(SystemException x){
//This code will never execute since all
//exceptions are caught in the first catch?
}
Далее, как работает эта иерархия перехвата? Если Exception находится наверху, все остальные типы исключений - один уровень в разделе Exception, или существует несколько уровней типа, например, если Exception является родителем ExceptionSomething, который является родительским для ExceptionSomethingElse?
приложение:
Или, если у нас есть такой код:
try{
...
}
catch(SystemException x){
//If there is an exception that is not a SystemException
//code in this block will not run, right (since this is
//looking specifically for SystemExceptions)?
}