Как JVM получает информацию о том, какой тип исключения имеет место, а затем показывает, какой тип исключения он есть, а также какой поток используется JVM для информирования нас.Как JVM проверяет, какой тип исключения произошел в программе?
ответ
Программист может броситьисключение используя throw
заявление. байткод использует опкодаathrow
:
ObjectRef должен быть ссылка типа и должен относиться к объекту , который является экземпляром класса Throwable или подкласса Throwable. Выталкивается из стека операндов. Затем objectref вызывается , ища текущий метод (§2.6) для первого обработчика исключений , который соответствует классу objectref, заданному алгоритмом в §2.10.
Если найден обработчик исключений, который соответствует objectref, он содержит местоположение кода, предназначенного для обработки этого исключения. Регистр pc сбрасывается в это место, стек операнда текущего кадра очищается, objectref отбрасывается обратно в стек операнда, а выполнение продолжается.
См. 2.10. Exception от JLS, чтобы лучше понимать исключения.
Существует 2 типа исключений: проверено и не отмечено.
Проверенные исключения являются исключениями, которые необходимо уловить в вашей программе. Это подклассы «Исключения».
Непроверенные исключения - это исключения, которые не должны быть пойманы. Это подклассы «RuntimeException».
JVM может вызывать RuntimeException, такие как OutOfMemoryException или NullPointerExeception.
Но некоторые фреймворки или вы можете явно исключать исключение (проверено или не проверено, зависит от ваших потребностей).
Java Developer определяет функцию для исключения исключений по некоторым критериям, как в FileNotFound Exception. Исключением для этого являются исключения Runtime, которые могут возникнуть в любом месте, например, код. NPE.
Если вышло исключение, оно больше не будет распространяться, что означает, что вы должны его обрабатывать. Если вы не поймаете Исключение, тогда он просто будет распространяться на его родительскую функцию вызова. Этот процесс будет продолжаться до метода main(). Если даже main() не справляется с этим, JVM просто отключится.
Также нет отдельной ветви отчетности. Тот же основной поток, который выполняет код, заботится об обработке Исключения.
- 1. python: Как узнать, какой тип исключения произошел?
- 2. Как узнать, в какой программе работает JVM?
- 3. Какой тип исключения для броска для строк
- 4. Исключение JVM в простой программе
- 5. Как jvm проверяет аргументы и возвращает тип при использовании jni-вызова? Как реализовать этот тип проверки?
- 6. java - выяснение, какой тип исключения для броска
- 7. Как узнать, с какой сцены произошел сеанс?
- 8. Как определить, какой вид onResume произошел
- 9. Как отслеживать тип неперехваченного исключения?
- 10. Какой тег произошел после фиксации в git?
- 11. Какой сигнал повышает JVM во время необработанного исключения?
- 12. какой сценарий в транзакции http произошел?
- 13. Определите, в какой ветке произошел фиксатор
- 14. Couldnot создать виртуальное machine.Fatal исключения Java произошел
- 15. Что проверяет JVM в отношении Java-объекта (==)?
- 16. Задача «GenerateResource» произошел сбой исключения нулевого референс
- 17. Какой тип данных нельзя исключить в программе C++
- 18. Какой тип данных я должен использовать в своей программе
- 19. Продолжить синтаксический анализ записей, если в какой-либо записи произошел сбой при возникновении исключения в BeanIO
- 20. Java - Как проверить, какой тип исключения был брошен?
- 21. Как распространять исключения MySQL в программе Java?
- 22. Как использовать Исключения в программе на C++?
- 23. Несколько экземпляров JVM в одной программе
- 24. Определите, какой компьютер совершил git, произошел от
- 25. проверяет тип generic/template
- 26. Получение исключения в программе WordCount в Hadoop
- 27. MySQL проверяет, существует ли таблица без исключения исключения
- 28. Какой тип исключения следует использовать в ExpectedExceptionAttribute при модульном тестировании?
- 29. Указывает, когда JVM Verifier Проверяет классы
- 30. Почему виртуальная машина проверяет тип поля?
Вы имеете в виду, как он генерирует трассировку стека? Или как выбрасываются исключения? Не могли бы вы привести пример того, что вы имеете в виду: –
sir в следующей программе JVM show Exception --------- public static void main (String [] args) { String s = "1"; int a = Integer.parseInt (s); } ------- как JVM получает информацию о том, что существует исключение в потоке «main» java.lang.NumberFormatException: Для входной строки: "а" \t на java.lang.NumberFormatException.forInputString (NumberFormatException.java:65) \t на java.lang.Integer.parseInt (Integer.java:492) \t в java.lang. Integer.parseInt (Integer.java:527) \t at javaapplication3.JavaApplication3.main (JavaApplication3.java:28) Java Результат: 1 –