#### 自定义异常类
PHP自带的异常类不太容易懂,而且对于强迫症来说提示的也不够明显,有时候需要详细信息的时候需要连续调用多个方法,所以把这些方法封装起来也是必要的,封装自定义异常类的方法很简单,只需要继承一下PHP原生的异常类,再把其中的方法封装一下就好。
~~~
namespace S;
class S_Exception extends \Exception
{
public function __construct($message, $code = 0)
{
// 确保所有变量都被正确赋值
parent::__construct($message, $code);
}
public function getDetail(){
if (APP_DEBUG === true){
$this->getDetails();
}else{
echo "出错了!";
}
}
public function getDetails()
{
echo '
出现异常了!
';$msg = '
错误内容:' . $this->getMessage() . '
';$msg .= '
异常抛出位置:' . $this->getFile() . ',第' . $this->getLine() . '行
';$msg .= '
异常追踪信息:' . $this->getTraceAsString() . '
';echo $msg;
echo '
';
echo '
';
print_r($this->getTrace()) ;
echo '
';exit;
}
}
~~~
相信各位对异常类都不陌生,这里只简单提一提,首先判断是否是调试模式,如果不是,就不抛出异常,如果是的话,就按照自定义的格式输出异常信息,里面遇到的方法``$this->getFile()``是获取出现异常的文件,``$this->getMessage()``是获取异常信息,`` $this->getTraceAsString()``是获取异常追踪信息,把它们按照自己规定的格式显示出来,如果你喜欢,甚至可以给他们加上css或者一些特效。
* * * * *
下一章节会讲一些我经常用到的函数,我把他们封装到了一起,写进了框架的公共函数库文件中。