php中的异常和错误处理机制包括异常(可恢复)和错误(不可恢复)。异常使用try-catch处理,错误使用error_get_last()获取信息和set_error_handler()自定义处理函数。异常通过throw语句抛出,使用try-catch捕获,异常对象提供错误信息、代码、文件和行号。
PHP 函数中异常和错误处理
在 PHP 中,异常和错误是两种不同的错误处理机制:
异常 表示程序执行过程中发生的可恢复错误,可以使用 try-catch 语句来处理。错误 表示程序执行过程中发生的不可恢复错误,通常会导致程序终止。
错误处理
PHP 内置了一个错误处理函数 error_get_last(),用于获取最近发生的错误信息:
<?php // 触发一个错误echo $undefined_variable;// 获取错误信息$error = error_get_last();if ($error) { echo "错误类型:{$error['type']}" . PHP_EOL; echo "错误信息:{$error['message']}" . PHP_EOL; echo "错误文件:{$error['file']}" . PHP_EOL; echo "错误行号:{$error['line']}" . PHP_EOL;}
登录后复制
还可以使用 set_error_handler() 函数自定义错误处理函数:
立即学习“PHP免费学习笔记(深入)”;
<?php function my_error_handler($errno, $errstr, $errfile, $errline) { echo "错误类型:{$errno}" . PHP_EOL; echo "错误信息:{$errstr}" . PHP_EOL; echo "错误文件:{$errfile}" . PHP_EOL; echo "错误行号:{$errline}" . PHP_EOL;}set_error_handler('my_error_handler');// 触发一个错误echo $undefined_variable;
登录后复制
异常处理
抛出异常
可以使用 throw 语句抛出异常:
<?php function divide($num1, $num2) { if ($num2 === 0) { throw new Exception("除数不能为 0"); } return $num1 / $num2;}
登录后复制
捕获异常
可以使用 try-catch 语句捕获异常:
getMessage()}" . PHP_EOL;}
登录后复制
异常对象提供了以下信息:
getMessage():异常消息getCode():异常代码getFile():异常发生的文件getLine():异常发生的行号
实战案例
以下是一个检查文件是否存在并抛出异常的 PHP 函数:
<?php function file_exists_or_throw($path) { if (!file_exists($path)) { throw new Exception("文件 '{$path}' 不存在"); }}
登录后复制
这个函数可以在需要确保文件存在的情况下使用:
<?php try { file_exists_or_throw('test.txt'); // ...} catch (Exception $e) { echo "文件 'test.txt' 不存在" . PHP_EOL;}
登录后复制
以上就是PHP 函数中异常和错误处理的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1458037.html