1. 程式人生 > >PHP異常與錯誤的區別

PHP異常與錯誤的區別

PHP錯誤:是屬於php程式自身的問題,一般是由非法的語法,環境問題導致的,使得編譯器無法通過檢查,甚至無法執行的情況。平時遇到的warming、notice都是錯誤,只是級別不同而已。

PHP異常:一般是業務邏輯上出現的不合預期、與正常流程不同的狀況,不是語法錯誤。

// 以除數為0為例,看看PHP是如何處理的
<?php
$a = 0;
try {
    echo 4/$a;
}
catch (Exception $e){
    echo $e->getMessage();
}
//報錯,PHP是無法自動捕獲異常的,必須手動丟擲


$a = 0;
try {
    if($a == 0){
        throw new Exception('除數不能為0', 1);
    }
    echo 4/$a;//不會執行
}
catch (Exception $e){
    echo $e->getMessage();
}

PHP中對於異常的機制使用,一般用於業務邏輯判斷上面,當業務邏輯不正常時,進行特殊處理。

下面看一下PHP錯誤處理機制。PHP提供了set_error_handler()函式進行錯誤處理。當錯誤發生時,set_error_handler會統一處理錯誤。