Предположим, у меня есть вызывающий класс с именем, скажем, A в файле jar a.jar, который вызывает метод, скажем, B.b() в отдельном файле jar b.jar.
Пока там все ок.
Теперь разработчики пакетов B добавляют проверенное исключение в B.b(), которое становится чем-то вроде того, как B.b() генерирует исключение и повторно развертывает файл b.jar. Файл a.jar остается нетронутым, нетронутым, поэтому разработчики пакета A не замечают ошибки компиляции, требующей немедленного перехвата исключения.
Что произойдет во время выполнения? Точнее, как с этим справляется JVM. Из моего опыта, но на удивление, он работает гладко в том случае, когда во время выполнения на самом деле не создаются исключения. Получается, что разрешение метода выполняется, даже если сигнатура не совпадает на уровне исключения. С другой стороны, если B.b() действительно выдает исключение, я понятия не имею, что произойдет. Указано ли это поведение где-то в спецификации языка JVM или Java, или оно зависит от разработчика JVM или, возможно, даже настраивается с помощью некоторых параметров флагов JVM?
Спасибо за ваши разъяснения