Идея состоит в том, что непроверенные исключения могут генерироваться любым кодом, поэтому, если вы ловите что-то, что может перехватить непроверенное исключение, компилятор не проверяет, является ли код в try
Блок может бросить что угодно. В особом случае, когда в блоке try действительно есть код no , это неуместно, но это упрощает язык и является проблемой только в полностью поддельном коде, который я не ожидал бы увидеть в любой реальной кодовой базе. Я предполагаю, что есть подобные ситуации, когда вы делаете вещи только с примитивами и т. Д., Но это действительно крайний случай. Большинство блоков try будут содержать код, который теоретически может вызвать неконтролируемое исключение.
Если вы попытаетесь отловить проверенный тип исключения, который не выдается в блоке try
, , тогда компилятор будет жаловаться.