В Java существует старое, но всё ещё актуальное ограничение: если метод бросает checked-исключение (например, IOException), он обязан явно объявить это с помощью throws. Это требование — не от JVM, а от компилятора. Компилятор жёстко следит за декларациями, но вот JVM — нет. Что создаёт любопытную лазейку: обойти компилятор, оставаясь при этом в рамках спецификации JVM.
Сегодня разберёмся, как это сделать с помощью
Unsafe.throwException(), почему это вообще работает, где это может пригодиться, и на что стоит обратить внимание при использовании Java 17, 21 и 24.Читать: https://habr.com/ru/companies/otus/articles/897384/?utm_campaign=897384
@a_cup_of_java | Другие наши каналы