java异常

Error和Exception都继承自Throwable

java异常_第1张图片

  • Throwable是所有异常的父类
  • Error表示很严重的问题发生,可以捕获但是不要捕获,因为捕获了也解决不了,这不是程序产生的异常

二者的不同之处:

Exception:

  • 可以是可被控制或者不可控制;
  • 表示一个由程序员导致的错误;
  • 应该在应用程序级被处理;

Error:

  • 总是不可控的;
  • 经常用来表示系统错误或者底层资源错误;
  • 如果可能的话,应该在系统级被捕捉;

java的异常分为检查异常和非检查异常

检查异常

就是编译器要求你必须处理的异常(处理捕获或者必须抛出);

检查异常有哪些?
   除了RuntimeException与其派生类,其他差不多都是检查异常。

非检查异常

编译器不要求强制处置的异常,虽然有可能出现错误,但是不会在编译时检查。

非检查异常有哪些?
  RuntimeException与其子类,以及Error

Exception异常进行划分,可以分为运行时异常和非运行时异常。

  • 运行时异常:都是RuntimeException类及其子类异常,如NullPointerException(空指针异常)、IndexOutOfBoundsException(下标越界异常)等,这些异常时非检查异常,程序中可以选择捕
    获处理,也可以不处理。
    运行时异常的特点是Java编译器不会检查它,也就是说,当程序中可能出现这类异常,即使没有用try-catch语句捕获他,也没有用throws语句生命抛出它,也会编译通过。
  • 非运行时异常:是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException等以及用户自定义的Exception异常,一般情况下不要自定义检查异常。

你可能感兴趣的:(Java,异常)