php中的错误处理
程序员文章站
2022-03-12 16:08:04
1.错误的级别 1.notice 提示2.warning 警告3.error 致命错误 notice和warning报错后继续执行,error报错后停止执行 2.错误的提示方法 方法一:显示在浏览器上 方法二:记录在日志中 3.与错误处理有关的配置 在php.ini中 1. error_report ......
1.notice 提示
2.warning 警告
3.error 致命错误
notice和warning报错后继续执行,
error报错后停止执行
方法二:记录在日志中
1. error_reporting = e_all:报告所有的错误
2. display_errors = on:将错误显示在浏览器上
3. log_errors = on:将错误记录在日志中
4. error_log=’地址’:错误日志保存的地址
在项目开发过程中有两个模式,开发模式,运行模式
开发模式:错误显示在浏览器上,不要记录在日志中
运行模式:错误不显示在浏览器上,记录是日志中
<?php $debug=false; //true:开发模式 false:运行模式 ini_set('error_reporting',e_all); //所有的错误有报告 if($debug){ ini_set('display_errors','on'); //错误显示是浏览器上 ini_set('log_errors','off'); //错误不显示在日志中 }else{ ini_set('display_errors','off'); ini_set('log_errors','on'); ini_set('error_log','./err.log'); //错误日志保存的地址 } //测试 echo $num;
通过trigger_error产生一个用户级别的 error/warning/notice 信息
/** *自定义错误处理函数 *@param $errno int 错误类别 *@param $errstr string 错误信息 *@param $errfile string 文件地址 *@param $errline int 错误行号 */ function error($errno,$errstr,$errfile,$errline) { switch($errno){ case e_notice: case e_user_notice: echo '记录在日志中,上班后在处理<br>'; break; case e_warning: case e_user_warning: echo '给管理员发邮件<br>'; break; case e_error: case e_user_error: echo '给管理员打电话<br>'; break; } echo "错误信息:{$errstr}<br>"; echo "错误文件:{$errfile}<br>"; echo "错误行号:{$errline}<br>"; } set_error_handler('error'); echo $num; //运行结果 记录在日志中,上班后在处理 错误信息:undefined variable: num 错误文件:f:\wamp\www\4-demo.php 错误行号:50