Home >php教程 >php手册 >PHP常用功能块_异常与时间戳 — php(33),php时间戳转换

PHP常用功能块_异常与时间戳 — php(33),php时间戳转换

WBOY
WBOYOriginal
2016-06-13 09:03:301200browse

PHP常用功能块_异常与时间戳 — php(33),php时间戳转换

异常(接上篇)

一个简单异常处理实例

<?<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>
?>

系统自带异常处理

 

<?<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>?>

自定义异常

 

<?<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 />

 捕获多个异常

 

在try代码之后,必须至少给出一个catch代码块,也可以将多个catch代码块与一个try代码块关联使用。那么使用多个catch就可以捕获不同的类所产生的异常。注意顺序。

2 时间戳 

2.1 UNIX时间戳

 

Unix 时间戳:

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn