pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

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

這篇文章主要介紹了PHP異常處理定義與使用方法,較為詳細的分析了php異常處理的定義、使用方法及相關注意事項,需要的朋友可以參考下

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

<?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
//定義一個頂級異常處理
function my_exception($e){
  echo "我是頂級異常處理".$e->getMessage();
}
//修改默認的頂級異常處理函數(器)
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 "返回發生異常的文件名 =".$e->getFile()."<br/>";
  echo "返回發生異常的代碼行號 =".$e->getLine()."<br/>";
  //echo " =".$e->getTrace()."<br/>"; // backtrace() 數組
  //可以繼續拋出,這時將會啟動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){
    //對異常處理
}

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

1. 當捕獲到一個異常后,try{} 塊里的后續代碼不繼續執行.
2. 如果有一個異常發生,但是你沒有catch 捕獲,則提示一個Uncaught Exception.(系統.)
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();
       }
    }
?>

異常的規則

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

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP錯誤與異常處理方法總結》、《php字符串(string)用法總結》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《php面向對象程序設計入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

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

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

這篇文章主要介紹了PHP定義字符串的四種方式,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
下面小編就為大家分享一篇php 替換文章中的圖片路徑,下載圖片到本地服務器的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇PHP給源代碼加密的幾種方法匯總(推薦),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇php打開本地exe程序,js打開本地exe應用程序,并傳遞相關參數方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
這篇文章主要介紹了PHP類的反射來實現依賴注入過程以及相關知識點分享,對此有興趣的朋友跟著小編學習下吧。
php遍歷一個文件夾內的所有文件和文件夾,并刪除所有文件夾和子文件夾下的所有文件的代碼,通過遞歸方式實現達到清空一個目錄的效果。本文給大家分享實例代碼,需要的朋友參考
主站蜘蛛池模板: 工程管道/塑料管材/pvc排水管/ppr给水管/pe双壁波纹管等品牌管材批发厂家-河南洁尔康建材 | 磁力加热搅拌器-多工位|大功率|数显恒温磁力搅拌器-司乐仪器官网 | 北京网络营销推广_百度SEO搜索引擎优化公司_网站排名优化_谷歌SEO - 北京卓立海创信息技术有限公司 | 气动调节阀,电动调节阀,自力式压力调节阀,切断阀「厂家」-浙江利沃夫自控阀门 | 石家庄网站建设|石家庄网站制作|石家庄小程序开发|石家庄微信开发|网站建设公司|网站制作公司|微信小程序开发|手机APP开发|软件开发 | 即用型透析袋,透析袋夹子,药敏纸片,L型涂布棒-上海桥星贸易有限公司 | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | TPE_TPE热塑性弹性体_TPE原料价格_TPE材料厂家-惠州市中塑王塑胶制品公司- 中塑王塑胶制品有限公司 | 洗石机-移动滚筒式,振动,螺旋,洗矿机-青州冠诚重工机械有限公司 | 德国GMN轴承,GMN角接触球轴承,GMN单向轴承,GMN油封,GMN非接触式密封 | 阻垢剂-反渗透缓蚀阻垢剂厂家-山东鲁东环保科技有限公司 | 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 山东商品混凝土搅拌楼-环保型搅拌站-拌合站-分体仓-搅拌机厂家-天宇 | 氧化锆纤维_1800度高温退火炉_1800度高温烧结炉-南京理工宇龙新材料股份有限公司 | 长城人品牌官网| 纸布|钩编布|钩针布|纸草布-莱州佳源工艺纸布厂 | 铝镁锰板_铝镁锰合金板_铝镁锰板厂家_铝镁锰金属屋面板_安徽建科 | 校园气象站_超声波气象站_农业气象站_雨量监测站_风途科技 | 室内室外厚型|超薄型|非膨胀型钢结构防火涂料_隧道专用防火涂料厂家|电话|价格|批发|施工 | 穿线管|波纹穿线管|包塑金属软管|蛇皮管?闵彬专注弱电工程? | 带压开孔_带压堵漏_带压封堵-菏泽金升管道工程有限公司 | 电动高压冲洗车_价格-江苏速利达机车有限公司| 吸音板,隔音板,吸音材料,吸音板价格,声学材料 - 佛山诺声吸音板厂家 | 棕刚玉_白刚玉_铝酸钙-锐石新材料 | SDG吸附剂,SDG酸气吸附剂,干式酸性气体吸收剂生产厂家,超过20年生产使用经验。 - 富莱尔环保设备公司(原名天津市武清县环保设备厂) | 定做大型恒温循环水浴槽-工业用不锈钢恒温水箱-大容量低温恒温水槽-常州精达仪器 | wika威卡压力表-wika压力变送器-德国wika代理-威卡总代-北京博朗宁科技 | 通用磨耗试验机-QUV耐候试验机|久宏实业百科 | 置顶式搅拌器-优莱博化学防爆冰箱-磁驱搅拌器-天津市布鲁克科技有限公司 | 济南办公室装修-厂房装修-商铺装修-工装公司-山东鲁工装饰设计 | 河南中整光饰机械有限公司-抛光机,去毛刺抛光机,精密镜面抛光机,全自动抛光机械设备 | 富森高压水枪-柴油驱动-养殖场高压清洗机-山东龙腾环保科技有限公司 | HDPE储罐_厂家-山东九州阿丽贝防腐设备 | 十字轴_十字轴万向节_十字轴总成-南京万传机械有限公司 | 安徽控制器-合肥船用空调控制器-合肥家电控制器-合肥迅驰电子厂 安徽净化板_合肥岩棉板厂家_玻镁板厂家_安徽科艺美洁净科技有限公司 | SEO网站优化,关键词排名优化,苏州网站推广-江苏森歌网络 | 高柔性拖链电缆-聚氨酯卷筒电缆-柔性屏蔽电缆厂家-玖泰电缆 | 商秀—企业短视频代运营_抖音企业号托管 | 高考志愿规划师_高考规划师_高考培训师_高报师_升学规划师_高考志愿规划师培训认证机构「向阳生涯」 | 玉米深加工设备|玉米加工机械|玉米加工设备|玉米深加工机械-河南成立粮油机械有限公司 | 原色会计-合肥注册公司_合肥代理记账公司_营业执照代办 |