熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

PHP5中的異常處理詳解[1]

2022-06-13   來源: PHP編程 

   首先是trycatch

    〈?php
    $path = D:\\\\intxt;
    try //檢測異常
    {
    file_open($path);
    }
    catch(Exception $e) //捕獲異常
    {
    echo $e〉getMessage();
    }

    function file_open($path)
    {
    if(!file_exists($path)) //如果文件無法找到拋出異常對象
    {
    throw new Exception(文件無法找到 );
    }

    if(!fopen($path r)) //如果文件無法打開拋出異常對象
    {
    throw new Exception(文件無法打開 );
    }
    }
    ?〉

  注意用$e〉getMessage()輸出異常信息

   輸出異常完整信息

    〈?php
    $path = D:\\\\intxt;

    try
    {
    file_open($path); //嘗試打開文件
    }
    catch(Exception $e)
    {
    echo 異常信息$e〉getMessage()\\n; //返回用戶自定義的異常信息
    echo 異常代碼$e〉getCode()\\n; //返回用戶自定義的異常代碼
    echo 文件名$e〉getFile()\\n; //返回發生異常的PHP程序文件名
    echo 異常代碼所在行$e〉getLine()\\n; //返回發生異常的代碼所在行的行號
    echo 傳遞路線;
    print_r($e〉getTrace()); //以數組形式返回跟蹤異常每一步傳遞的路線
    echo $e〉getTraceAsString(); //返回格式化成字符串的getTrace函數信息
    }

    function file_open($path)
    {
    if(!file_exists($path)) //如果文件不存在則拋出錯誤
    {
    throw new Exception(文件無法找到 );
    }

    if(!fopen($path r))
    {
    throw new Exception(文件無法打開 );
    }
    }
    ?〉

  擴展異常即自定義異常

    〈?php
    class FileExistsException extends Exception{} //用於處理文件不存在異常的類
    class FileOpenException extends Exception{} //用於處理文件不可讀異常的類

    $path = D:\\\\intxt;

    try
    {
    file_open($path);
    }
    catch(FileExistsException $e) //如果產生FileExistsException異常則提示用戶確認文件位置
    {
    echo 程序在運行過程中發生了異常$e〉getMessage()\\n;
    echo 請確認文件位置;
    }
    catch(FileOpenException $e) //如果產生FileOpenException異常則提示用戶確認文件的可讀性
    {
    echo 程序在運行過程中發生了異常$e〉getMessage()\\n;
    echo 請確認文件的可讀性;
    }
    catch(Exception $e)
    {
    echo [未知異常];
    echo 異常信息$e〉getMessage()\\n; //返回用戶自定義的異常信息
    echo 異常代碼$e〉getCode()\\n; //返回用戶自定義的異常代碼
    echo 文件名$e〉getFile()\\n; //返回發生異常的PHP程序文件名
    echo 異常代碼所在行$e〉getLine()\\n; //返回發生異常的代碼所在行的行號
    echo 傳遞路線;
    print_r($e〉getTrace()); //以數組形式返回跟蹤異常每一步傳遞的路線
    echo $e〉getTraceAsString(); //返回格式化成字符串的getTrace函數信息
    }

    function file_open($path)
    {
    if(!file_exists($path))
    {
    throw new FileExistsException(文件無法找到 ); //拋出FileExistsException異常對象
    }

    if(!fopen($path r))
    {
    throw new FileOpenException(文件無法打開 ); //拋出FileOpenException異常對象

    }
    }
    ?〉


From:http://tw.wingwit.com/Article/program/PHP/201311/21471.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.