返回

Exception 与 Error:面试中常问的编程技巧

后端

Exception 和 Error

在 Java 中,Exception 和 Error 是两种不同的错误类型。Exception 是可以被捕获并处理的错误,而 Error 是无法被捕获和处理的错误。

Exception

Exception 是程序运行时可能发生的错误。它可以被捕获并处理,以便程序能够继续运行。例如,当您试图访问一个不存在的文件时,就会抛出一个 FileNotFoundException。

Error

Error 是程序运行时发生的严重错误。它无法被捕获和处理,只能导致程序终止。例如,当内存不足时,就会抛出一个 OutOfMemoryError。

运行时异常与一般异常

Exception 可以进一步分为运行时异常和一般异常。运行时异常是程序运行时发生的错误,它可以被捕获和处理,但不需要被捕获。一般异常是程序运行时发生的错误,它必须被捕获和处理,否则程序将终止。

运行时异常

运行时异常是指在程序运行时发生的异常,例如:

  • ArithmeticException: 算术异常,例如除零
  • ArrayIndexOutOfBoundsException: 数组越界
  • NullPointerException: 空指针引用
  • IllegalArgumentException: 非法参数
  • UnsupportedOperationException: 不受支持的操作

这些异常都不需要被捕获,因为它们通常是程序员的错误,而不是程序本身的错误。

一般异常

一般异常是指在程序运行时发生的异常,例如:

  • IOException: 输入输出异常,例如文件读写错误
  • SQLException: SQL 异常,例如数据库操作错误
  • ClassNotFoundException: 类未找到异常,例如尝试加载一个不存在的类
  • InterruptedException: 中断异常,例如线程被中断

这些异常必须被捕获,因为它们通常是程序本身的错误,而不是程序员的错误。

如何处理异常

当程序中发生异常时,您可以使用 try-catch 块来捕获和处理异常。try 块包含可能引发异常的代码,catch 块包含用于处理异常的代码。例如:

try {
  // 可能引发异常的代码
} catch (Exception e) {
  // 处理异常的代码
}

您可以在 catch 块中使用 e.printStackTrace() 来打印异常的堆栈信息。

总结

Exception 和 Error 是 Java 中的两种不同的错误类型。Exception 可以被捕获并处理,而 Error 无法被捕获和处理。运行时异常是程序运行时发生的错误,它可以被捕获和处理,但不需要被捕获。一般异常是程序运行时发生的错误,它必须被捕获和处理,否则程序将终止。