PHP高级教程(10):PHP异常处理
异常(Exception)用于在指定的错误发生时改变脚本的正常流程。 什么是异常?PHP 5 提供了一种新的面向对象的错误处理方法。 异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情况称为异常。 当异常被触发时,通常会发生:
我们将展示不同的错误处理方法:
异常的基本使用当异常被抛出时,其后的代码不会继续执行,PHP 会尝试查找匹配的 "catch" 代码块。 如果异常没有被捕获,而且又没用使用 set_exception_handler() 作相应的处理的话,那么将发生一个严重的错误(致命错误),并且输出 "Uncaught Exception" (未捕获异常)的错误消息。 让我们尝试抛出一个异常,同时不去捕获它: <?php //create function with an exception function checkNum($number) { if($number>1) { throw new Exception("Value must be 1 or below"); } return true; } //trigger exception checkNum(2); ?> 上面的代码会获得类似这样的一个错误: Fatal error: Uncaught exception ''Exception'' with message ''Value must be 1 or below'' in C:\webfolder\test.php:6 Stack trace: #0 C:\webfolder\test.php(12): checkNum(28) #1 {main} thrown in C:\webfolder\test.php on line 6 Try, throw 和 catch要避免上面例子出现的错误,我们需要创建适当的代码来处理异常。 处理处理程序应当包括:
让我们触发一个异常: <?php //创建可抛出一个异常的函数 function checkNum($number) { if($number>1) { throw new Exception("Value must be 1 or below"); } return true; } //在 "try" 代码块中触发异常 try { checkNum(2); //If the exception is thrown, this text will not be shown echo ''If you see this, the number is 1 or below''; } //捕获异常 catch(Exception $e) { echo ''Message: '' .$e->getMessage(); } ?> 上面代码将获得类似这样一个错误: Message: Value must be 1 or below 例子解释:上面的代码抛出了一个异常,并捕获了它:
不过,为了遵循“每个 throw 必须对应一个 catch”的原则,可以设置一个顶层的异常处理器来处理漏掉的错误。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |