Java从入门到放弃教程十八--java 异常处理
1、其中一些异常是由用户错误引起的, 另一些是由程序员错误造成的, 另一些则是由物理资源以某种方式失败的。
基于这些原因, 会有三类异常。我们需要了解它们以便了解在 Java 中异常处理的工作方式。
1、在编译时发生的异常, 它们也称为编译时异常。在编译时不能简单地忽略这些异常, 程序员应该处理这些异常。
例如, 如果在程序中使用 FileReader 类读取文件中的数据, 如果在其构造函数中指定的文件不存在, 则会发生则抛出, 编译器会提示程序员处理异常。
1、在执行时发生的异常。这些也称为运行时异常。其中包括编程 bug, 如逻辑错误或 API 使用不当。编译时忽略运行时异常。
1、捕获异常
方法使用 try 和 catch 关键字的组合捕捉异常。try/catch块放置在可能生成异常的代码周围。try/catch块中的代码称为受保护的代码, 使用 try/catch的语法如下所示
try {
// Protected code
} catch (ExceptionName e1) {
// Catch block
}
容易出现异常的代码放在 try 块中。发生异常时, 发生的异常由与之关联的 catch 块处理。每个 try 块都应紧跟着一个 catch 块或一个Finally块后面。
catch 语句包括声明要捕获的异常类型。如果在受保护的代码中发生异常, 则会选中 try 后面的 catch 块 (或块)。如果 catch 块中列出了发生的异常类型, 则会将异常传递给 catch 块, 就像将参数传递给方法参数一样。
1、一个Finally块跟随一个 try 块或一个 catch 块。 无论是否发生异常,Finally块始终执行。
Finally块出现在 catch 块的末尾, 语法是:
try {
// Protected code
} catch (ExceptionType1 e1) {
// Catch block
} catch (ExceptionType2 e2) {
// Catch block
} catch (ExceptionType3 e3) {
// Catch block
}finally {
// The finally block always executes.
}