#### 自定義異常類
PHP自帶的異常類不太容易懂,而且對(duì)于強(qiáng)迫癥來說提示的也不夠明顯,有時(shí)候需要詳細(xì)信息的時(shí)候需要連續(xù)調(diào)用多個(gè)方法,所以把這些方法封裝起來也是必要的,封裝自定義異常類的方法很簡單,只需要繼承一下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 "出錯(cuò)了!";
}
}
public function getDetails()
{
echo '<h1>出現(xiàn)異常了!</h1>';
$msg = '<p>錯(cuò)誤內(nèi)容:<b>' . $this->getMessage() . '</b></p>';
$msg .= '<p>異常拋出位置:<b>' . $this->getFile() . '</b>,第<b>' . $this->getLine() . '</b>行</p>';
$msg .= '<p>異常追蹤信息:<b>' . $this->getTraceAsString() . '</b></p>';
echo $msg;
echo '<hr>';
echo '<pre>';
print_r($this->getTrace()) ;
echo '</pre>';
exit;
}
}
~~~
相信各位對(duì)異常類都不陌生,這里只簡單提一提,首先判斷是否是調(diào)試模式,如果不是,就不拋出異常,如果是的話,就按照自定義的格式輸出異常信息,里面遇到的方法``$this->getFile()``是獲取出現(xiàn)異常的文件,``$this->getMessage()``是獲取異常信息,`` $this->getTraceAsString()``是獲取異常追蹤信息,把它們按照自己規(guī)定的格式顯示出來,如果你喜歡,甚至可以給他們加上css或者一些特效。
* * * * *
下一章節(jié)會(huì)講一些我經(jīng)常用到的函數(shù),我把他們封裝到了一起,寫進(jìn)了框架的公共函數(shù)庫文件中。