最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP異常處理定義與使用方法分析

 更新時間:2017年07月25日 11:08:03   作者:3wlog  
這篇文章主要介紹了PHP異常處理定義與使用方法,較為詳細的分析了php異常處理的定義、使用方法及相關(guān)注意事項,需要的朋友可以參考下

本文實例講述了PHP異常處理定義與使用方法。分享給大家供大家參考,具體如下:

<?php
//php5提供了基本的異常處理類,可直接使用 ,不需要自己再定義
// class Exception
// {
// protected $message = 'Unknown exception'; // 異常信息
// protected $code = 0; // 用戶自定義異常代碼
// protected $file; // 發(fā)生異常的文件名
// protected $line; // 發(fā)生異常的代碼行號
// function __construct($message = null, $code = 0);
// final function getMessage(); // 返回異常信息
// final function getCode(); // 返回異常代碼
// final function getFile(); // 返回發(fā)生異常的文件名
// final function getLine(); // 返回發(fā)生異常的代碼行號
// final function getTrace(); // backtrace() 數(shù)組
// final function getTraceAsString(); // 已格成化成字符串的 getTrace() 信息
// /* 可重載的方法 */
// function __toString(); // 可輸出的字符串
// }
?>

<?php
//定義一個頂級異常處理
function my_exception($e){
  echo "我是頂級異常處理".$e->getMessage();
}
//修改默認的頂級異常處理函數(shù)(器)
set_exception_handler("my_exception");
//我們使用異常機制
try{
  addUser("shunping");
  updateUser("xiaoming1");
}
//catch用來 捕獲異常, Exception 是異常類(是php定義好一個類)
catch(Exception $e){
  //返回異常信息
  echo "返回異常信息(失敗信息) =".$e->getMessage()."<br/>";
  echo "返回異常代碼 =".$e->getCode()."<br/>";
  echo "返回發(fā)生異常的文件名 =".$e->getFile()."<br/>";
  echo "返回發(fā)生異常的代碼行號 =".$e->getLine()."<br/>";
  //echo " =".$e->getTrace()."<br/>"; // backtrace() 數(shù)組
  //可以繼續(xù)拋出,這時將會啟動php默認的異常處理器來處理
  //你也可以自己定義一個頂級異常處理器,對其進行處理
  throw $e;
}
function addUser($username){
  if($username=="shunping"){
    //添加ok
    echo "ok1";
  }else{
    //添加error
    //拋出異常.
    throw new Exception("添加失敗");
  }
}
function updateUser($username){
  if($username=="xiaoming"){
    //正常修改
    echo "ok2";
  }else{
    //平拋出異常
    throw new Exception("修改失敗");
  }
}
?>

異常使用的注意事項 :

通過上面的案例,我們可以看出,使用

try{
    //代碼
}catch(Exception $e){
    //對異常處理
}

這種方式,可以更有效的控制錯誤.所以在開發(fā)中大量的使用.

1. 當捕獲到一個異常后,try{} 塊里的后續(xù)代碼不繼續(xù)執(zhí)行.
2. 如果有一個異常發(fā)生,但是你沒有catch 捕獲,則提示一個Uncaught Exception.(系統(tǒng).)
3. 當catch一個異常,你可以處理,也可以不處理,不處理就可以
throw new Exception("信息");

4. 你可以自定義異常類

class MyException extends Exception {
}

5. 使用多個 catch 代碼塊可以捕獲不同種類的異常

try{
    //代碼....
  //第一句話
  //第二句話
}catch(PDOException $e){
    //
}catch(Exception $e){
|
}

6. 也可簡單使用 Exception 捕獲

代碼說明:

<?php
    //定義了一個異常
    class MyException1 extends Exception{
    }
    class MyException2 extends Exception{
    }
    function A(){
       throw new MyException1("a");
    }
    function B(){
       throw new MyException2("b")
    }
    function C(){
       try{
           A();//拋出MyException1
           B();//拋出MyException2
       }catch(Exception1 $e1){
           $e1->getMessage();
       }catch(Exception2 $e2){
           $e2->getMesage();
       }
    }
?>

異常的規(guī)則

需要進行異常處理的代碼應(yīng)該放入 try 代碼塊內(nèi),以便捕獲潛在的異常。
每個 try 或 throw 代碼塊必須至少擁有一個對應(yīng)的 catch 代碼塊。
使用多個 catch 代碼塊可以捕獲不同種類的異常。
可以在 try 代碼塊內(nèi)的 catch 代碼塊中拋出(再次拋出)異常。
簡而言之:如果拋出了異常,就必須捕獲它。或者使用頂級異常處理器處理。
如果不拋,即使有異常也不會捕獲,不會處理

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP錯誤與異常處理方法總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總

希望本文所述對大家PHP程序設(shè)計有所幫助。

相關(guān)文章

  • PHP頁面實現(xiàn)定時跳轉(zhuǎn)的方法

    PHP頁面實現(xiàn)定時跳轉(zhuǎn)的方法

    這篇文章主要介紹了PHP頁面實現(xiàn)定時跳轉(zhuǎn)的方法,實例演示使用header函數(shù)來實現(xiàn)跳轉(zhuǎn)的技巧,需要的朋友可以參考下
    2014-10-10
  • 解決PHP在DOS命令行下卻無法鏈接MySQL的技術(shù)筆記

    解決PHP在DOS命令行下卻無法鏈接MySQL的技術(shù)筆記

    前段時間,由于要用 php 進行 Shell 編程時,碰到了 PHP 在 WEB 下可以連接 MySQL 而在 DOS COMMAND 命令行下卻連接失敗的問題。
    2010-12-12
  • Laravel 5.3 學(xué)習筆記之 錯誤&日志

    Laravel 5.3 學(xué)習筆記之 錯誤&日志

    這篇文章主要介紹了Laravel 5.3 學(xué)習筆記之 錯誤&日志的相關(guān)資料,需要的朋友可以參考下
    2016-08-08
  • WordPress中獲取頁面鏈接和標題的相關(guān)PHP函數(shù)用法解析

    WordPress中獲取頁面鏈接和標題的相關(guān)PHP函數(shù)用法解析

    這篇文章主要介紹了WordPress中獲取頁面鏈接和標題的相關(guān)PHP函數(shù)用法解析,分別為get_permalink()和wp_title()函數(shù)的使用,需要的朋友可以參考下
    2015-12-12
  • Thinkphp框架中D方法與M方法的區(qū)別

    Thinkphp框架中D方法與M方法的區(qū)別

    本文主要對ThinkPHP框架中D()和M()方法的區(qū)別進行了詳細的分析介紹。具有很好的參考價值,需要的朋友一起來看下吧
    2016-12-12
  • PHP過濾★等特殊符號的正則

    PHP過濾★等特殊符號的正則

    過濾特殊符號的方法有很多,下面為大家介紹下使用正則來實現(xiàn)下,希望對大家有所幫助
    2014-01-01
  • php實現(xiàn)按照權(quán)重隨機排序數(shù)據(jù)的方法

    php實現(xiàn)按照權(quán)重隨機排序數(shù)據(jù)的方法

    這篇文章主要介紹了php實現(xiàn)按照權(quán)重隨機排序數(shù)據(jù)的方法,是php數(shù)據(jù)排序中一個比較典型的應(yīng)用技巧,需要的朋友可以參考下
    2015-01-01
  • PHP利用APC模塊實現(xiàn)大文件上傳進度條的方法

    PHP利用APC模塊實現(xiàn)大文件上傳進度條的方法

    這篇文章主要介紹了PHP利用APC模塊實現(xiàn)大文件上傳進度條的方法,并分享了相關(guān)配置說明,感興趣的朋友可以學(xué)習借鑒。
    2015-10-10
  • 最新評論

    辽源市| 陕西省| 舒城县| 新巴尔虎左旗| 台南市| 灵宝市| 公安县| 井冈山市| 台州市| 法库县| 芜湖县| 朝阳区| 平昌县| 英山县| 乌拉特前旗| 天长市| 拜城县| 定陶县| 靖江市| 马龙县| 肇庆市| 秦皇岛市| 垫江县| 长治县| 普格县| 阜新市| 瑞昌市| 墨江| 夏津县| 尖扎县| 寿阳县| 崇义县| 石渠县| 铁岭县| 凉城县| 鲁山县| 乐东| 安化县| 法库县| 昭通市| 睢宁县|