当前位置: 首页 > 后端技术 > PHP

PHP错误-异常处理总结

时间:2023-03-29 23:01:04 PHP

error这里所说的错误可能是语法解析、运行时等各种原因产生的信息导致的常见错误类型。运行时错误E_ERROR-致命错误定义:致命运行时错误结果:脚本终止,不再继续运行E_WARNING-警告定义:运行时警告(非致命错误)结果:给出提示信息,但脚本不会终止运行E_NOTICE-通知定义:RuntimenotificationResult:给出一个通知信息,但是脚本在编译时不会因为其他类型的错误而终止执行eg。E_PARSEE_COMPILE_ERRORE_COMPILE_WARNING...用户生成的信息,例如。E_USER_WARNINGE_USER_ERRORE_USER_NOTICE...等。具体如下:参考:PHP-ErrorHandling-PredefinedConstantErrorHandlingHere只处理运行时错误,其他(如:语法错误,Zend引擎产生的错误,等)不在讨论范围之内。设置通用错误处理函数的核心方法:set_error_handler测试代码如下:getMessage()。PHP_EOL;}catch(\Exception$e){echo'Exception:'.$e->getMessage()。PHP_EOL;}finally{echo'终于到了'.PHP_EOL;}结果如下:?answergit:(master)?phpexception.phpUserException:Thisisexceptionhereisfinally这是一个常见的catch,不做过多解释,参见:ExceptionHandlingUncaughtException那么,我应该怎么办如果抛出未捕获的异常怎么办?让我们看看如果没有被捕获会发生什么:getMessage());});thrownew\Exception('I我是个例外');回声'我在这里'。PHP_EOL;结果如下:?answergit:(master)?phpthrow.phpThisisexception,msg:Iamanexception结论:set_exception_handler可以处理未捕获的异常,但是脚本还是会break并报fatalerror。本文最后对异常处理做一个简单的总结,其中涉及三个核心方法set_error_handlerregister_shutdown_functionset_exception_handler。详情请参考官方手册。同时PHP-7还有一些新特性,比如:错误类参考:PHP7错误处理最后强烈建议开启编辑器的语法检查功能,无论是IDE,GUI文本编辑器,或vim,它可以避免许多错误。不必要的错误。如果你使用版本控制,你可以在相应的软件中添加一个语法检查钩子。可以参考:我的vim-configuration自动检测PHP语法和编程规范(Gitpre-commit)以上如有错误,欢迎指正。如有遗漏,请补充。?