PHP 实战 try、catch、finally 用法总结

在 PHP 中,try、catch 和 finally 是用于处理异常的关键字。

对应执行流程图:

image.png

image.png

try 块包含可能会抛出异常的代码。如果在 try 块中抛出了异常,它将被捕获并传递给与之匹配的 catch 块进行处理。如果没有抛出异常,catch 块将被跳过。

catch 块定义了异常的处理逻辑。它可以捕获特定类型的异常,并执行相应的操作。你可以定义多个 catch 块来捕获不同类型的异常。异常类型匹配是根据继承关系进行的,所以子类异常也会被匹配到父类异常的 catch 块中。

finally 块是一个可选的代码块,它始终会在 try-catch 块执行完毕后执行,无论是否有异常抛出。它通常用于执行一些清理操作,例如关闭文件、释放资源等。

以下是一个示例代码,演示了 try、catch 和 finally 的用法:

try {
    // 可能抛出异常的代码
    // 例如,打开文件、执行数据库查询等
    // 如果发生异常,将会抛出异常对象
} catch (ExceptionType1 $e) {
    // 处理 ExceptionType1 类型的异常
    // 可以访问异常对象 $e 的属性和方法
} catch (ExceptionType2 $e) {
    // 处理 ExceptionType2 类型的异常
} finally {
    // 执行清理操作的代码
    // 无论是否有异常,都会执行该块的代码
}

在上面的代码中,你需要将 “ExceptionType1” 和 “ExceptionType2” 替换为你要捕获的具体异常类型。你可以根据需要添加更多的 catch 块来处理其他类型的异常。

在 catch 块中,你可以使用异常对象的属性和方法来获取有关异常的信息,例如异常消息、文件、行号等。

无论是否发生异常,finally 块中的代码都会被执行。它是可选的,可以根据你的需求决定是否使用它。

  • 如果 catch 里面有 return 或者 try 里面有 return,finally 里面没有 return,最后会 return 前面的第一个 return,非 finally 代码段的 return 后面的代码是不执行的,finally 代码段肯定会执行。
  • 如果 catch 里面有 return 或者 try 里面有 return,finally 里面有 return,非 finally 代码段的 return 后面的代码是不执行的,但是 finally 里面的 return 会覆盖前面 return 的值

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYMPevsB' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片