java把异常作为对象来处理,并定义了一个基类java.lang.Throwable作为所有异常的超类。在JAVA API中定义了许多异常类,这些异常大致可分为两种,Error 和 Exception .Error和Exception都是Throwable的子类,其中Exception又可细分为两种 RuntimeException与非运行时异常。
Error与Exception的区别:
Error一般是程序无法自身处理的错误,如OutOfMemoryError,TreadDeath等,这些异常发生时,JVM一般会选择关闭进程。
Exception是程序本身可以处理的异常,程序中应当尽可能去处理这些异常。
RuntimeException与非运行时异常
运行时异常都是RuntimeExceptin或其子类的异常,例如NullPionterException, IndexOutOfBoundException,这些异常是不检查异常,程序中可以选择捕获处理,也可以选择不处理。这些异常一般是由程序中逻辑错误引起,应该从逻辑角度避免这些异常的产生。
非运行时异常类型上都属于Exception或其子类异常(不包含RuntimeException及其子类的),java鼓励程序员去处理他们。从程序语法角度讲是必须进行异常处理的,否则程序不能编译通过,如IOException或SQLException。
Error与Exception的区别:
Error一般是程序无法自身处理的错误,如OutOfMemoryError,TreadDeath等,这些异常发生时,JVM一般会选择关闭进程。
Exception是程序本身可以处理的异常,程序中应当尽可能去处理这些异常。
RuntimeException与非运行时异常
运行时异常都是RuntimeExceptin或其子类的异常,例如NullPionterException, IndexOutOfBoundException,这些异常是不检查异常,程序中可以选择捕获处理,也可以选择不处理。这些异常一般是由程序中逻辑错误引起,应该从逻辑角度避免这些异常的产生。
非运行时异常类型上都属于Exception或其子类异常(不包含RuntimeException及其子类的),java鼓励程序员去处理他们。从程序语法角度讲是必须进行异常处理的,否则程序不能编译通过,如IOException或SQLException。