Exception (continued from the previous article)
A simple exception handling example
<?<span>php </span><span>try</span><span> { $error</span>= <span>'</span><span>Always throw this error</span><span>'</span><span>; </span><span>throw</span> <span>new</span><span> Exception($error); </span><span>//</span><span>创建一个异常对象,通过throw语句抛出</span> echo <span>'</span><span>Neverexecuted</span><span>'</span><span>; </span><span>//</span><span>从这里开始,try代码块内的代码将不会再被执行</span> } <span>catch</span><span> (Exception $e) { echo </span><span>'</span><span>Caught exception:</span><span>'</span>, $e->getMessage(), <span>"</span><span>\n</span><span>"</span><span>; </span><span>//</span><span>输出捕获的异常消息</span> <span>} echo </span><span>'</span><span>Hello World</span><span>'</span>; <span>//</span><span>程序没有崩溃继续向下执行</span> ?>
The system comes with exception handling
<?<span>php classException{ </span><span>protected</span>$message=<span>'</span><span>Unknownexception</span><span>'</span>;<span>//</span><span>异常信息</span> <span>protected</span>$code=<span>0</span>;<span>//</span><span>用户自定义异常代码</span> <span>protected</span>$file;<span>//</span><span>发生异常的文件名</span> <span>protected</span>$line;<span>//</span><span>发生异常的代码行号</span> function__construct($message=<span>null</span>,$code=<span>0</span><span>); finalfunctiongetMessage();</span><span>//</span><span>返回异常信息</span> finalfunctiongetCode();<span>//</span><span>返回异常代码</span> finalfunctiongetFile();<span>//</span><span>返回发生异常的文件名</span> finalfunctiongetLine();<span>//</span><span>返回发生异常的代码行号</span> finalfunctiongetTrace();<span>//</span><span>backtrace()数组</span> finalfunctiongetTraceAsString(); <span>//</span><span>已格成化成字符串</span> <span>的getTrace()信息 </span><span>/*</span><span>可重载的方法</span><span>*/</span><span> function__toString();</span><span>//</span><span>可输出的字符串</span> <span>} </span>?>
<?<span>php </span><span>/*</span><span> 自定义的一个异常处理类,但必须是扩展内异常处理类的子类</span><span>*/</span> <span>class</span><span> MyExceptionextends Exception{ </span><span>//</span><span>重定义构造器使第一个参数message 变为必须被指定的属性</span> <span>public</span> function __construct($message, $code=<span>0</span><span>){ </span><span>//</span><span>可以在这里定义一些自己的代码 </span><span>//</span><span>建议同时调用parent::construct()来检查所有的变量是否已被赋值</span> <span>parent::__construct($message, $code); } </span><span>public</span><span> function __toString() { </span><span>//</span><span>重写父类方法,自定义字符串输出的样式</span> <span>return</span> __CLASS__.<span>"</span><span>:[</span><span>"</span>.$<span>this</span>->code.<span>"</span><span>]:</span><span>"</span>.$<span>this</span>->message.<span>"</span><span><br></span><span>"</span><span>; } </span><span>public</span><span> function customFunction() { </span><span>//</span><span>为这个异常自定义一个处理方法</span> echo <span>"</span><span>按自定义的方法处理出现的这个类型的异常<br></span><span>"</span><span>; } } </span>?>
Custom exception
<?<span>php </span><span>try</span> { <span>//</span><span>使用自定义的异常类捕获一个异常,并处理异常</span> $error = <span>'</span><span>允许抛出这个错误</span><span>'</span><span>; </span><span>throw</span> <span>new</span><span> MyException($error); </span><span>//</span><span>创建一个自定义的异常类对象,通过throw语句抛出</span> echo <span>'</span><span>Never executed</span><span>'</span>; <span>//</span><span>从这里开始,try代码块内的代码将不会再被执行</span> } <span>catch</span> (MyException$e) { <span>//</span><span>捕获自定义的异常对象</span> echo <span>'</span><span>捕获异常: </span><span>'</span>.$e; <span>//</span><span>输出捕获的异常消息</span> $e->customFunction(); <span>//</span><span>通过自定义的异常对象中的方法处理异常</span> <span>} echo </span><span>'</span><span>你好呀</span><span>'</span>; <span>//</span><span>程序没有崩溃继续向下执行</span> ?><br /><br /><br />
Catch multiple exceptions
在try代码之后,必须至少给出一个catch代码块,也可以将多个catch代码块与一个try代码块关联使用。那么使用多个catch就可以捕获不同的类所产生的异常。注意顺序。
2 timestamp
2.1 UNIX Timestamp
Unix timestamp: