什么是异常?
程序在运行的时候,发生的不被期望的问题,它阻止了程序按照程序员的预期正常执行,这就是异常。在异常发生的时候,是任程序自生自灭,立刻退出终止。在Java中,即为Java在编译或运行或者运行过程中出现的错误。
Java提供了更为优秀的解决方法:异常处理机制。
异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰。
Java中的异常不仅可以是函数中的语句执行时引发的,也可以是程序员通过throw 语句手动抛出的,只要在Java程序中产生了异常,就会用一个对应类型的异常对象来封装异常,JRE就会试图寻找异常处理程序来处理异常。
捕获异常:
基本语法:
try{
有可能出现异常的语句 ;
}[catch (异常类型 异常对象) {
} ... ]
[finally {
异常的出口
}]
try 代码块中放的是可能出现异常的代码。
catch 代码块中放的是出现异常后的处理行为。
finally 代码块中的代码用于处理善后工作, 会在最后执行。其中 catch 和 finally 都可以根据情况选择加或者不加。
异常处理流程
程序先执行 try 中的代码
如果 try 中的代码出现异常, 就会结束 try 中的代码, 看和 catch 中的异常类型是否匹配.
如果找到匹配的异常类型, 就会执行 catch 中的代码
如果没有找到匹配的异常类型, 就会将异常向上传递到上层调用者.
无论是否找到匹配的异常类型, finally 中的代码都会被执行到(在该方法结束之前执行).
如果上层调用者也没有处理的了异常, 就继续向上传递,一直到 main 方法也没有合适的代码处理异常, 就会交给 JVM 来进行处理, 此时程序就会异常终止
注意事项:
catch 不能独立于 try 存在。
catch里面不能没有内容
try, catch, finally 块之间不能添加任何代码。
finally里面的代码最终一定会执行
如果程序可能存在多个异常,需要多个catch进行捕获。











网友评论