运行时异常与一般异常的区别?

来源:互联网 发布:如何才能破解淘宝同款 编辑:程序博客网 时间:2024/05/19 02:20

所有 Error和Exception 的父类都是 java.lang.Throwable

Error:表示由JVM所侦测到的无法预期的错误,由于这是属于JVM层次的严重错误,导致JVM无法继续执行,因此,这是不可捕捉的,无法采取任何恢复的操作,一般只能显示错误的信息。

Exception:一般可恢复,可捕捉。

Java提供了两类主要的异常:runtime exception 和checked exception 。checked异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch。所以,这种异常我们必需去写 catch 语句块去处理可能的异常。

     runtime exception ,也称运行时异常,我们可以不处理。当出现这种异常时,总是由JVM去接管。如:NullPointerException为最常见的异常之一。

     出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。如果没有处理块,到最上层,如果是多线程就由Thread.run()抛出,如果是单线程就被main()抛出。抛出之后,如果是线程,这个线程就会退出,如果主程序抛出异常,那么这个程序就退出。运行时异常是Exception的子类,同样也有一般异常的特点,是可以被catch块处理的。只是我们不对它进行处理罢了。也就是说,你如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序中止。