PHP 快速導覽 - 內建例外 Exception

Exception 為內建的例外 (exception) 類別 (class) ,遇到錯誤會發生的情況就是 throw 一個例外物件 (object) 。



Standard PHP Library (SPL) 另有提供一些繼承自 Exception 的例外類別,如下
  • LogicException
    • BadFunctionCallException
      • BadMethodCallException
    • DomainException
    • InvalidArgumentException
    • LengthException
    • OutOfRangeException
  • RuntimeException
    • OutOfBoundsException
    • OverflowException
    • RangeException
    • UnderflowException
    • UnexpectedValueException


Exception 有四個 protected 屬性 (property) ,如下
型態與名稱說明
string $message建構子的第一個參數,其為自訂的錯誤訊息
int $code建構子的第二個參數,表示例外碼的整數值
string $file發生例外的 PHP 檔案名稱
int $line發生例外的行數


另外有幾個 final 方法 (method) 與建構子 (constructor) ,如下
名稱說明
__construct()有三個可有可無的參數, $message 為自訂的錯誤訊息, $code 為例外碼的整數值,最後 $previous 預設為 NULL ,這是前一個例外物件
getMessage()回傳 $message
getPrevious()回傳 $previous
getCode回傳 $code
getFile回傳 $file
getLine回傳 $line
getTrace回傳儲存回朔的陣列
getTraceAsString回傳儲存回朔的字串


舉例如下
<?php
try {
    throw new Exception('Now', 0, new Exception('Previous'));
} catch (Exception $e) {
    echo $e->getMessage(), "\n\n";
    echo $e->getCode(), "\n\n";
    echo $e->getPrevious(), "\n\n";
    echo $e->getFile(), "\n\n";
    echo $e->getLine(), "\n\n";
    echo $e->getTrace(), "\n\n";
    echo $e->getTraceAsString();
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:e000.php
    功能:示範 PHP 程式 
    作者:張凱慶
    時間:西元 2013 年 2 月 */
?>


執行結果如下



中英文術語對照
例外exception
類別class
物件object
屬性property
方法method
建構子constructor


您可以繼續參考
例外


相關目錄
回 PHP 快速導覽
回 PHP 教材
回首頁


參考資料
http://www.php.net/manual/en/language.exceptions.php
http://www.php.net/manual/en/class.exception.php

沒有留言: