JVM如何获取关于发生的异常类型的信息,并显示有关异常类型以及JVM用于通知我们的线程。
JVM如何获取关于发生的异常类型的信息,并显示有关异常类型以及JVM用于通知我们的线程。
throw
语句抛出异常。字节码使用操作码athrow
:请参考JLS中的2.10. Exception以更好地理解异常。
Java开发人员根据某些条件定义抛出异常的函数,例如FileNotFound Exception。例外是运行时异常,它可以在代码中的任何地方发生,例如NPE。
如果捕获了异常,它将不再传播,这意味着您必须处理它。如果不捕获异常,则它将仅传播到其父调用函数。这个过程将继续到main()方法。即使main()也不处理它,JVM也会停止运行。
此外,没有单独的报告线程。执行代码的同一个主线程负责异常处理。
有两种类型的异常:已检查和未检查。
已检查异常是需要在程序中捕获的异常。它们是“Exception”的子类。
未检查异常是不需要捕获的异常。它们是“RuntimeException”的子类。
JVM可以抛出像OutOfMemoryException或NullPointerExeception这样的RuntimeExceptions。
但是,一些框架或您可以明确地抛出异常(已检查或未检查,取决于您的需求)。