Спецификация Java 11: 11.3. Обработка исключения во время выполнения
Когда генерируется исключение, управление передается от кода, вызвавшего исключение, ближайшему динамически включающему предложению catch, если таковое имеется, оператора try, который может обработать исключение. Оператор или выражение динамически включается в предложение catch, если оно появляется в блоке try оператора try, частью которого является предложение catch, или если вызывающий оператор или выражение динамически заключен в предложение catch. Вызывающий оператор или выражение зависит от того, где он встречается: Если внутри метода, то вызывающая сторона - это выражение вызова метода, которое было выполнено, чтобы вызвать вызов метода. Если внутри конструктора, или инициализатора экземпляра, или инициализатора для переменной экземпляра, то вызывающей стороной является выражение создания экземпляра класса или вызов метода newInstance, который был выполнен, чтобы вызвать создание объекта. Если внутри статического инициализатора или инициализатора для статической переменной,...