首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 錯誤與異常處理基礎教學

     編輯:PHP 相關知識

PHP 錯誤與異常處理基礎教學

妥善處理錯誤與異常是撰寫健壯 PHP 應用程式的關鍵。本文整理核心錯誤類型、除錯技巧與異常捕獲機制。

1.1 錯誤類型與基本除錯方法

主要錯誤層級

  • E_ERROR:致命執行錯誤,腳本終止
  • E_WARNING:執行期警告,腳本繼續
  • E_NOTICE:執行期通知(如未定義變數)
  • E_DEPRECATED:棄用功能警告
  • E_STRICT:程式碼標準建議

錯誤報告設定

<?php
// 開發環境建議顯示所有錯誤
error_reporting(E_ALL);
ini_set('display_errors', '1');

// 生產環境記錄到日誌,不顯示給使用者
ini_set('display_errors', '0');
ini_set('log_errors', '1');
ini_set('error_log', '/var/log/php_errors.log');
?>

異常處理機制

PHP 5+ 引入物件導向異常模型,使用 try-catch-finally 區塊:

<?php
function divide($a, $b) {
    if ($b == 0) {
        throw new Exception("除數不能為零");
    }
    return $a / $b;
}

try {
    echo divide(10, 0);
} catch (Exception $e) {
    echo "捕獲異常:" . $e->getMessage();
} finally {
    echo "結束處理";
}
?>

自訂異常類別

<?php
class MyAppException extends Exception {
    public function __construct($message, $code = 0, Exception $previous = null) {
        parent::__construct($message, $code, $previous);
    }
    public function __toString() {
        return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
    }
}

try {
    throw new MyAppException("自訂錯誤", 1001);
} catch (MyAppException $e) {
    echo $e;
}
?>

錯誤處理最佳實踐

  1. 開發階段啟用 E_ALL,生產環境關閉顯示、開啟日誌
  2. 使用 set_error_handler() 將錯誤轉為異常統一處理
  3. 針對不同業務建立專屬異常類別,便於精準捕獲
  4. 避免在 catch 區塊吞沒異常,至少記錄日誌
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved