try {
//执行逻辑,有异常抛出异常(catch 监听异常)
} catch (HttpException $e) {
//时刻监听HttpException错误类抛出的异常
} catch (Exception $e) {
//时刻监听Exception错误类抛出的异常
} finally {
//最后执行,无论是否抛出异常都会执行
}
try-catch-finally的执行顺序是:
1、不管有没有出现异常,finally块中的代码都会执行;
2、当try和catch中有return时,finally仍然会执行;
3、finally是在return后面的表达式运算后执行的。
解释:
-
代码的执行顺序是:先执行try,监听到异常运行catch,没有异常的话则不会运行catch,但
这两种情况都会finally
,并且,finally中的返回(refun)值会覆盖掉try和catch的return 值,前面语句中有die、exit,finally不会执行
。 -
finally的意义在于可以处理一些资源的清理和回收等操作。