Java异常体系

Java异常体系的层次结构

Java异常体系的最顶层是Throwable类,Throwable类是Java语言中所有错误和异常的超类。

Throwable类有两个直接子类:Error和Exception

  • Error类:是程序运行时无法处理的问题,通常是严重的系统问题,如内存溢出(OutOfMemoryError)、栈溢出(StackOverflowError)、虚拟机错误(VirtualMachineError)等。错误无法在代码中捕获和处理。

    An Error is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch. Most such errors are abnormal conditions.

  • Exception类:是程序运行时可以捕获并且处理的问题,通常是由程序逻辑错误或者运行时环境问题引起的。Exception类分为运行时异常(RuntimeException)和非运行时异常(比如IOException、SQLException等)。

    The class Exception and its subclasses are a form of Throwable that indicates conditions that a reasonable application might want to catch.

不受检查异常(Unchecked Exception)和检查异常(Checked Exception)

Throwable and any subclass of Throwable that is not also a subclass of either RuntimeException or Error are regarded as checked exceptions.

简单而言,Throwable和Throwable的任何子类,如果不是RuntimeException或Error的子类,都是检查异常。
反之,RuntimeException或Error的子类,都是不受检查异常。

异常处理机制

Java提供了几种处理异常的方式,包括捕获异常、声明异常和抛出异常。

  1. 捕获异常:使用try-catch语句块来捕获可能抛出异常的代码块。当try块中的代码发生异常时,程序将跳转到匹配的catch块进行处理。

  2. 声明异常:在方法签名中使用throws关键字声明方法可能抛出的异常。这样,调用该方法的代码就需要处理这些异常,要么通过try-catch捕获,要么继续声明抛出。

  3. 抛出异常:使用throw关键字显式抛出异常。这通常发生在检测到无法恢复的错误情况时,或者当需要将错误传递给上层调用者处理时。

posted @ 2024-09-02 16:34  抒写  阅读(3)  评论(0编辑  收藏  举报