Я пытаюсь найти исчерпывающий список ситуаций, когда JVM генерирует исключение без оператора throw
в коде Java. Конечно, мы все знакомы с исключениями NullPointerException, такими как:
Object o = null;
o.toString();
Также целочисленная математика может вызвать исключение ArithmeticException в 1/0
и распаковать нулевое целое число, как в Integer i=null; i++;
.
Что касается моей непосредственной проблемы, меня не волнуют Error
дела, такие как StackOverflowError
и OutOfMemoryError
, просто типы Exception
(хотя, если есть список ошибок, не стесняйтесь указывать на это) , Я также счастлив исключить вызов произвольного нативного кода из Java. Благодарю.
Еще один способ думать об этом - если я увижу Stacktrace, как это:
Exception in thread "main" java.lang.SomeException: Some Exception Message
at com.test.MyClass.main(MyClass.java:6)
затем я открываю MyClass.java
, а в строке 6 нет оператора throw
- есть ли где-нибудь канонический список возможных причин исключения? Еще раз спасибо.