您好,登錄后才能下訂單哦!
1、Php錯誤報告級別
1 E_ERROR?致命的運行錯誤。錯誤無法恢復,暫停執行腳本。
2 E_WARNING?運行時警告(非致命性錯誤)。非致命的運行錯誤,腳本執行不會停止。
4 E_PARSE?編譯時解析錯誤。解析錯誤只由分析器產生。
8 E_NOTICE?運行時提醒(這些經常是你代碼中的bug引起的,也可能是有意的行為造成的。)
?error_reporting = E_ALL & ~E_NOTICE
2、自定義php錯誤報告方式
set_error_handler("myerrorfun");
$mess ="";
function ?myerrorfun($error_type,$error_message,$error_file,$error_line){
??????????? global $mess;
??????????? $mess.="發生錯誤級別為{$error_type}類型、錯誤消息<b>{$error_message}</b>,在文件夾{$error_file},第{$error_line}行。<br>";
}
getType($a);
echo"$mess";
顯示為:發生錯誤級別為8類型、錯誤消息Undefined variable: a,在文件夾C:\AppServ\www\index.php,第9行。
?set_error_handler($_type,$_message,$_errfile,$_errline) 函數設置用戶自定義的錯誤處理程序,然后觸發錯誤
?
3、php記錄錯誤日志
log_errors = on 開啟php日志
error_log =syslog? 將php日志寫到系統上去。
error_log = “c:/lamp/php_error.log”;自已指定一個存放目錄、與上面相斥
ini_set(“log_errors”,“on”); 在php開發文件里設置
?
try{
??????????? echo"開始";
??????????? run();
}catch(Exception $e){
??????????? echo$e->getMessage()."<br>";
}
//當try{}里面不成功就拋出catch里面的異常
?
4、自定義異常類
//自定義異常類、必須是系統類Exception的子類
//如果繼承Exception類、重寫了構造方法、一定要調一下父類中被覆蓋的方法/
class ?MyBtException?extends ?Exception{
??????????? function__construct($mess){
?????????????????????? parent::__construct($mess);
??????????? }
??????????? functionchangBt(){
?????????????????????? echo"換個備胎";
??????????? }
}
try{
??????????? throw ?new ?MyBtException("車子胞胎");
??????????? echo"路況很好!";
}catch(MyBtException $e){
??????????? Echo ?$e->getMessage()."<br>";
??????????? $e->changBt()."<br>";
}
5、自定義多個異常類
??????????? //寫出對應這個異常解決方法, 就是一下正常類的結構
??????????? class?MyBtException ?extends ?Exception{
?????????????????????? function__construct($mess) {
?????????????????????????????????? parent::__construct($mess);
?????????????????????? }
?????????????????????? functionchangBt() {
?????????????????????????????????? echo"換上備胎!";
?????????????????????? }
??????????? }
??????????? class ?WcException ?extends ?Exception {
?????????????????????? functionpro() {
?????????????????????????????????? echo"去公廁<br>";
?????????????????????? }
??????????? }
??????????? class ?NoException ?extends ?Exception {
?????????????????????? functionpro() {
?????????????????????????????????? echo"買面色湊合一下!<br>";
?????????????????????? }
??????????? }
??????????? Class ?FlException ?extends ?Exception {
?????????????????????? functionpro() {
?????????????????????????????????? echo"走小路!<br>";
?????????????????????? }
??????????? }
class? Dm? {
??????????? function gowc($bj) {
?????????????????????? if(!$bj){
?????????????????????????????????? throw?new?WcException("馬桶不好用了");
?????????????????????? }
?????????????????????? echo"哈哈,事兒辦的很成功!<br>";
??????????? }
?
??????????? function?eat($time) {
?????????????????????? if(!$time){
?????????????????????????????????? thrownew NoException("起來晚了,早餐沒了!");
?????????????????????? }
?????????????????????? echo"吃的很好!<br>";
??????????? }
??????????? function dri($dz) {
?????????????????????? if(!$dz){
?????????????????????????????????? throw?new ?MyBtException("爆胎了");
?????????????????????? }
?????????????????????? echo"車開的不錯!<br>";
??????????? }
??????????? function?run($yu) {
?????????????????????? if(!$yu){
?????????????????????????????????? throw?new ?FlException("天下雪了, 高速封路了");
?????????????????????? }
?????????????????????? echo"高速很好走!<br>";
??????????? }
}
echo "早上起床<br>";
try{
??????????? $dm =new ?Dm();
??????????? // 1. 上廁所? (馬桶不好用了),去公廁
??????????? $dm-> gowc(true);
??????????? // 2. 吃早餐 (沒有早點),買面包
??????????? $dm-> eat(true);
??????????? //3. 開車上班 (爆tai)???????? 換下
??????????? $dm->dri(true);
?
??????????? //4. 上高速? (下雪)? 小路
??????????? $dm->run(false);
} catch(MyBtException ?$e) {???//? Exception $e = newException('');
??????????? echo$e->getMessage()."<br>";
??????????? //自定義類中的解決方法調用,解決了問題
??????????? $e->changBt()."<br>";
??????????? try {
??????????? }catch(Exception$e) {
??????????? }
} catch(NoException $e) {
??????????? echo$e->getMessage()."<br>";
??????????? $e->pro();
} catch(WcException $e) {
??????????? echo$e->getMessage()."<br>";
??????????? $e->pro();
} catch(Exception $e) {
??????????? echo$e->getMessage()."<br>";
??????????? //$e->pro();
}
??????????? echo"到公司開始工作<br>";
微信掃一掃?、關注公眾號
?? 不定時分享資料視頻
?
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。