PHP异常处理
异常是导致一个程序中断的指令流,一旦出现之后程序就立即退出。但PHP的异常捕获并不会像Java和python等可以捕获到致命错误,相应的它捕获的只能是不会使程序中断退出的警告和注意的错误信息。
1、错误级别:
E_ERROR //致命错误,程序运行停止
E_WARNING //警告,程序无大影响
E_NOTICE //注意
2、设置错误打印:error_reporting(E_ALL & ~ E_NOTICE);//不打印注意
3、注册错误处理函数:(不能处理:E_ERROR)
1 <?php 2 set_error_handler("fun1");//不能处理致命错误 3 function fun1($error_type,$error_message,$error_file,$error_row){ 4 //执行语句 5 } 6 ?>
4、 手动抛出异常:
1 <?php 2 try{ 3 throw new Exception("手动抛出异常1"); 4 }catch(Exception $e){ 5 print_r($e); 6 7 echo "<hr>";//横线 8 echo $e->getMessage();//手动抛出异常1 9 echo $e->getLine();//输出抛出异常行 10 } 11 ?>
5、 获取程序错误信息:
1 <?php 2 register_shutdown_function('fundown');//程序结束自动调用 3 function fundown() 4 { 5 if ($error = error_get_last()) {//获取到错误信息 6 echo $error["message"];//Call to undefined function fun1x() 7 } 8 } 9 10 fun1x();//错误未定义函数