下面小编就为大家带来一篇浅谈 PHP 中的错误处理和异常处理小编觉得挺不错的, 现在就分享给大家, 也给大家做个参考一起跟随小编过来看看吧
错误处理:
1. 语法错误
2. 运行时的错误
3. 逻辑错误
错误报告:
错误 E_ERROR
警告 E_WARNING
注意 E_NOTICE
开发阶段: 开发时输出所有的错误报告, 有利于我们进行调试
运行阶段: 不要让程序输出任何一种错误报告
将错误报告写入日志中
一. 指定错误报告 error_reporting=E_ALL(在 php.inn)
二. 关闭错误输出 display_errors=off(在 php.ini 中)
三. 开启错误日志的功能 log_errors=on(在 php.ini 中)
1. 默认如果不指定错误日志位置, 则默认写入 web 服务器的日志中
2. 为 error_log 选项指定一个文件名, 这个文件名就是错误日志
3. 写入到操作系统日志中 error_log=syslog
- <?php
- // 注意和警告都不会终止程序的运行, 但是错误会终止程序的运行
- /*
错误 E_ERROR
警告 E_WARNING
注意 E_NOTICE
*$/ 所有的错误都输出除了注意
- error_reporting(E_ALL & ~E_NOTICE);
- // 设置配置文件的值 (临时)
- //ini_set("upload_max_filesize", 2000000000);
- // 得到配置文件的值
- //ini_get("upload_max_filesize");
- // 关闭错误报告的显示, 一般在运行阶段使用
- ini_set("display_errors", "off");
- // 将错误报告写入日志中
- ini_set("log_errors", "on");
- // 日志的目录
- ini_set("error_log", "D:/error.log");
- gettype($var); // 注意
- gettype(); // 警告
- //getype(); // 错误, 程序终止
- echo "############";
- ?>
异常处理: 意外, 是在程序运行过程中发生的意料之外的事, 使用异常改变脚本正常流程
PHP5 中的一个新的重要特性
- try{
- }catch(异常对象){
- }
1. 如果 try 中代码没有问题, 则将 try 中代码执行完成后就到 catch 后执行
2. 如果 try 中代码有异常发生, 则抛出一个异常对象 (使用 throw), 抛出给了 catch 中的参数, 则在 try 中出现异常代码后的内容就不会执行, 直接跳转到 catch 中去执行, catch 中执行完成, 再继续向下执行
- <?php
- try{
- echo "11111111";
- $file=@fopen("./hello.txt","r");
- if(!$file){
- throw new Exception("文件打开失败");
- }
- echo "2222222222";
- }catch(Exception $e){
- echo "3333333";
- echo $e->getMessage()."";
- touch("hello.txt");
- $file=@fopen("./hello.txt","r");
- }
- echo "4444444";
- ?>
来源: https://www.php1.cn/detail/php-50c9b42a95.html