php大神进阶之try catch
发布时间:09/01 来源:未知 浏览:
关键词:
需要停止非常处置的代码都必需放入 try 代码块内,以便捕捉大概存在的非常。
每一个 try 至少要有一个与之对应的 catch。
使用多个 catch可以捕捉不一样的类所发生的非常。
当 try 代码块不再抛出非常或者寻不到 catch 能匹配所抛出的非常时,PHP 代码就会在跳转到最后一个 catch 的后面连续施行。
当然,PHP同意在 catch 代码块内再次抛出(throw)非常。
当一个非常被抛出时,其后(译者注:指抛出非常时所在的代码块)的代码将不会连续施行,而 PHP 就会尝试查寻第一个能与之匹配的 catch。
假如一个非常没有被捕捉,并且又没用使用 set_exception_handler() 作响应的处置的话,那么 PHP 将会发生一个严峻的错误,并且输出 Uncaught Exception ... (未捕捉非常)的提醒信息。
先来看一下PHP内置非常类的根本属性和办法。(不包罗详细实现)
<?php /** * Exception.php * * PHP5内置的非常类的属性与办法 * 以下这段代码只为说明内置非常处置类的构造,它并不是一段有实际意义的可用代码。 */ class Exception{ protected $message = 'Unknown exception'; // 非常信息 protected $code = 0; // 会员自定义非常代码 protected $file; // 发生非常的文件名 protected $line; // 发生非常的代码行号 function __construct($message = null, $code = 0); final function getMessage(); // 返回非常信息 final function getCode(); // 返回非常代码(代号) final function getFile(); // 返回发生非常的文件名 final function getLine(); // 返回发生非常的代码行号 final function getTrace(); // backtrace() 数组 final function getTraceAsString(); // 已格成化成字符串的 getTrace() 信息 //可重载的办法 function __toString(); // 可输出的字符串 } ?>
例子如下:
包括文件错误抛出非常
<?php // 错误的演示 try { require ('test_try_catch.php'); } catch (Exception $e) { echo $e->getMessage(); } // 准确的抛出非常 try { if (file_exists('test_try_catch.php')) { require ('test_try_catch.php'); } else { throw new Exception('file is not exists'); } } catch (Exception $e) { echo $e->getMessage(); }
更多教程:《php教程》
以上就是php大神进阶之try catch的具体内容,更多请关注百分百源码网其它相关文章!