PHP错误与异常
程序员文章站
2022-05-29 08:05:18
错误报告关闭和打开 php.ini 的 display_errors = On 或者 Off 代码里 ini_set(‘display_errors’,1) 或者 0 错误报告级别 最佳实践 开发环境下打开错误报告。并且错误报告级别 E_ALL正式环境一定要关闭错误报告 //显示所有的错误类型 er ......
错误报告关闭和打开
php.ini 的 display_errors = on 或者 off
代码里 ini_set(‘display_errors’,1) 或者 0
错误报告级别
最佳实践
开发环境下打开错误报告。并且错误报告级别 e_all
正式环境一定要关闭错误报告
//显示所有的错误类型 error_reporting(e_all); //显示所有的错误类型,除了notice 提示之外 error_reporting(e_all ^ e_notice); error_reporting(e_all &~ e_notice); //关闭所有的php错误报告 error_reporting(0); //报告所有的错误类型 error_reporting(-1);
举例
try { //找不到文件 throw new exception('找不到文件',1); //没有权限访问 throw new exception('没有权限',2); } catch (exception $e) { $errno = $e -> getcode(); if($errno == 1){ echo $e -> getfile(); }elseif($errno == 2){ echo $e -> getline(); } }
文件异常类
class fileexception extends exception{ public function fileinfo(){ return $this->getmessage(); } } try { print "open file"; throw new fileexception('file does not exist'); } catch (exception $e) { print $e -> fileinfo(); }
捕获多个异常
class fileexception extends exception{} //文件不存在的异常 class filenotexistexception extends fileexception{} //文件权限异常 class filepermissionexception extends fileexception{} function filehandle(){ //文件不存在 throw new filenotexistexception('file does not exist'); //文件权限异常 throw new filepermissionexception('access denied'); //其他异常 throw new fileexception('other exception'); } try { filehandle(); } catch (filenotexistexception $e) { echo $e -> getmessage(); }catch(filepermissionexception $e){ echo $e -> getmessage(); }catch(fileexception $e){ echo $e -> getmessage(); }
全局异常处理
<?php class fileexception extends exception{ //文件不存在 const file_not_exist = 1; //权限不够 const file_permission = 2; } function filehandle(){ //文件不存在 throw new fileexception('filenotexist',fileexception::file_not_exist); //权限不够 throw new fileexception('filepermission',fileexception::file_permission); } try { filehandle(); } catch (exception $e) { switch ($e -> getcode()) { case fileexception::file_not_exist: echo($e->getmessage()); break; case fileexception::file_permission: echo ($e -> getmessage()); break; } }catch(exception $e){ echo 'exception'; } ?> ------------------------------------------ <?php function defaultexceptionhandle($e){ printf("uncaught exception:%s in file %s on line %d",$e->getmessage(),$e->getfile(),$e->getline()); } set_exception_handler('defaultexceptionhandle'); throw new exception('tese......'); ?>
推荐阅读
-
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
-
PHP大批量数据操作时临时调整内存与执行时间的方法
-
php常用ip转换与文件下载代码
-
图片存储与浏览一例(Linux+Apache+PHP+MySQL)_php基础
-
PHP的全局错误处理详解,php全局详解
-
Linux笔记(62)——nginx安装与php集成
-
php中http与https跨域共享session的解决方法,httpssession
-
Mac OS X 下PHP无法显示错误信息
-
PHP 之Section与Cookie使用总结_PHP教程
-
php写一个服务器,实现与Android交互,该如何解决