日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php学习之try catch

發布時間:2024/9/20 php 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php学习之try catch 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

來源:http://blog.csdn.net/fwkjdaghappy1/article/details/7563613

PHP 5 添加了類似于其它語言的異常處理模塊。在 PHP 代碼中所產生的異常可被?throw語句拋出并被 catch 語句捕獲。(注:一定要先拋才能獲取
需要進行異常處理的代碼都必須放入 try 代碼塊內,以便捕獲可能存在的異常。
每一個 try 至少要有一個與之對應的 catch。
使用多個 catch可以捕獲不同的類所產生的異常。
當 try 代碼塊不再拋出異常或者找不到 catch 能匹配所拋出的異常時,PHP 代碼就會在跳轉到最后一個 catch 的后面繼續執行。
當然,PHP允許在 catch 代碼塊內再次拋出(throw)異常。
當一個異常被拋出時,其后(譯者注:指拋出異常時所在的代碼塊)的代碼將不會繼續執行,而 PHP 就會嘗試查找第一個能與之匹配的 catch。

如果一個異常沒有被捕獲,而且又沒用使用 set_exception_handler() 作相應的處理的話,那么?PHP?將會產生一個嚴重的錯誤,并且輸出 Uncaught Exception ... (未捕獲異常)的提示信息。

先來看一下PHP內置異常類的基本屬性和方法。(不包括具體實現)

[php]?view plaincopy
  • <?php??
  • /**?
  • *?Exception.php?
  • *??
  • *?PHP5內置的異常類的屬性與方法?
  • *?以下這段代碼只為說明內置異常處理類的結構,它并不是一段有實際意義的可用代碼。?
  • */??
  • ??
  • class?Exception{??
  • ????protected?$message?=?'Unknown?exception';?//?異常信息??
  • ????protected?$code?=?0;?//?用戶自定義異常代碼??
  • ????protected?$file;?//?發生異常的文件名??
  • ????protected?$line;?//?發生異常的代碼行號??
  • ??
  • ????function?__construct($message?=?null,?$code?=?0);??
  • ????final?function?getMessage();?//?返回異常信息??
  • ????final?function?getCode();?//?返回異常代碼(代號)??
  • ????final?function?getFile();?//?返回發生異常的文件名??
  • ????final?function?getLine();?//?返回發生異常的代碼行號??
  • ????final?function?getTrace();?//?backtrace()?數組??
  • ????final?function?getTraceAsString();?//?已格成化成字符串的?getTrace()?信息??
  • ??
  • ????//可重載的方法??
  • ????function?__toString();?//?可輸出的字符串??
  • }??
  • ?>??

  • 例子如下:

    包含文件錯誤拋出異常
    <?php
    // 錯誤的演示
    try {
    require ('test_try_catch.php');
    } catch (Exception $e) {
    echo $e->getMessage();
    }


    // 正確的拋出異常
    try {
    if (file_exists('test_try_catch.php')) {
    require ('test_try_catch.php');
    } else {
    throw new Exception('file is not exists');
    }
    } catch (Exception $e) {
    echo $e->getMessage();
    }



    總結

    以上是生活随笔為你收集整理的php学习之try catch的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。