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

PHP的異常處理類Exception的使用及說明

 更新時間:2012年06月13日 14:41:42   作者:  
異常處理的基本思想是代碼在try代碼被調(diào)用執(zhí)行。如果try碼塊出現(xiàn)錯誤,我們可以執(zhí)行一個拋出異常的處理
1、首先php5提供了基本的異常處理類,可直接使用
復(fù)制代碼 代碼如下:

<?php
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(); // 可輸出的字符串
}
?>

簡單的使用如下:(通過異常,拋出錯誤信息)
復(fù)制代碼 代碼如下:

try {
$error = 'my error!';
throw new Exception($error)
} catch (Exception $e) {
echo $e->getMessage();
}

2、我們可以擴展此類,方便我們的使用
復(fù)制代碼 代碼如下:

class MyException extends Exception
{
// 重定義構(gòu)造器使 message 變?yōu)楸仨毐恢付ǖ膶傩?
public function __construct($message, $code = 0) {
// 自定義的代碼
// 確保所有變量都被正確賦值
parent::__construct($message, $code);
}
// 自定義字符串輸出的樣式
public function __toString() {
return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
}
public function customFunction() {
echo "A Custom function for this type of exception\n";
}
}

異常處理的基本思想是代碼在try代碼被調(diào)用執(zhí)行。如果try碼塊出現(xiàn)錯誤,我們可以執(zhí)行一個拋出異常的處理。某些編程語言,如java,,在特定情況下將自動拋出異常。在php中,異常必須手動拋出??梢允褂萌缦路绞綊伋鲆粋€異常:
  Throw new Exception(‘message',code);
  Throw 關(guān)鍵字將觸發(fā)異常處理機制,它是一個語言結(jié)構(gòu),而不是一個函數(shù),但是必須給它傳遞一個值。它要求一個接受對象。在最簡單的情況下,可以實例化一個內(nèi)置的Exception類。
  最后,在try代碼之后,必須至少給出一個catch代碼塊??梢詫⒍鄠€catch代碼塊與一個try代碼塊進行關(guān)聯(lián)。如果每個catch代碼塊可以捕獲一個不同類型的異常,可以使用多個catch代碼塊是有意義的。例如,如果想捕獲Exception類的異常,代碼如下
復(fù)制代碼 代碼如下:

Catch(Exception $e)
{
//handing exception
}
Catch代碼捕獲的對象就是導(dǎo)致異常并傳遞給throw語句的對象(被throw 語句拋出)。使用Exception 類的實例,是不錯的選擇。
Exception類提供了如下的內(nèi)置方法:
  Getcode()   —返回傳遞給構(gòu)造函數(shù)的代碼。
  GetMessage() —返回傳遞給構(gòu)造函數(shù)的消息。
  getFile()     —返回產(chǎn)生異常代碼的文件的路徑
  getLine()    —返回產(chǎn)生異常的代碼所在的行。

注意:
當捕獲到一個異常后,try()塊里面的后續(xù)代碼將不會繼續(xù)執(zhí)行,而是會嘗試查找匹配的“catch”代碼塊
當拋出一個異常后,如果不進行catch處理,則會報“Uncaught exception 'Exception'”錯誤
復(fù)制代碼 代碼如下:

<?php
function test($val){
if ($val>100){
throw new Exception("提示信息:您輸入的值過大");
}
}
test(111);
?>

3.當一個異常拋出后,catch語句塊可以進行處理也可以不處理
以下是我用戶注冊功能的部分代碼
復(fù)制代碼 代碼如下:

try{
//check forms filled in
if(!filled_out($_POST)){
throw new Exception('你還沒有填寫表單,請回去填寫');
}
//check email address not valid
if(!check_email($email)){
throw new Exception('郵件的格式不正確');
}
//檢查密度的長度是否大于6
if(strlen($passwd<6)){
throw new Exception('密度的長度應(yīng)該大于6');
}
//檢查兩次密碼是否相等
if($passwd!=$passwd1){
throw new Exception('兩次密碼不一樣,請重新輸入');
}
//檢查用戶名的長度是否正確
if(strlen($username)>16){
throw new Exception('用戶名的長度不符,請重新輸入');
}
} catch(Exception $e){
echo $e->getMessage(); //輸出異常信息。
}

相關(guān)文章

  • PHP版 漢字轉(zhuǎn)碼的實現(xiàn)詳解

    PHP版 漢字轉(zhuǎn)碼的實現(xiàn)詳解

    本篇文章是對用php實現(xiàn)漢字轉(zhuǎn)碼進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • Eclipse PHPEclipse 配置的具體步驟

    Eclipse PHPEclipse 配置的具體步驟

    下面小編就為大家?guī)硪黄狤clipse PHPEclipse 配置的具體步驟。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • PHP中生成UUID自定義函數(shù)分享

    PHP中生成UUID自定義函數(shù)分享

    這篇文章主要介紹了PHP中生成UUID自定義函數(shù)分享,本文提供的代碼可以生成一個 UUID version 4,,需要的朋友可以參考下
    2015-06-06
  • 淺析application/x-www-form-urlencoded和multipart/form-data的區(qū)別

    淺析application/x-www-form-urlencoded和multipart/form-data的區(qū)別

    我們知道在通過POST方式向服務(wù)器發(fā)送AJAX請求時最好要通過設(shè)置請求頭來指定為application/x-www-form-urlencoded編碼類型。知道通過表單上傳文件時必須指定編碼類型為"multipart/form-data"。那么為什么要這么設(shè)置呢
    2014-06-06
  • 在WordPress中使用PHP腳本來判斷訪客來自什么國家

    在WordPress中使用PHP腳本來判斷訪客來自什么國家

    這篇文章主要介紹了在WordPress中使用PHP腳本來判斷訪客來自什么國家的方法,同時也可以調(diào)用文中所介紹的國內(nèi)網(wǎng)站所提供的API來查詢,需要的朋友可以參考下
    2015-12-12
  • Swoole 1.10.0新版本發(fā)布,增加了多項新特性

    Swoole 1.10.0新版本發(fā)布,增加了多項新特性

    最近Swoole 1.10.0版本發(fā)布了,增加多項新特性,所以下面這篇文章主要給大家介紹了關(guān)于Swoole 1.10.0版本中新特性的相關(guān)資料,分享出來供大家參考學(xué)習(xí),需要的朋友可以參考下
    2018-01-01
  • php隨機生成數(shù)字字母組合的方法

    php隨機生成數(shù)字字母組合的方法

    這篇文章主要介紹了php隨機生成數(shù)字字母組合的方法,實例分析了php生成隨機數(shù)及隨機字母的相關(guān)技巧與用法,非常具有實用價值,需要的朋友可以參考下
    2015-03-03
  • PHP使用stream_context_create()模擬POST/GET請求的方法

    PHP使用stream_context_create()模擬POST/GET請求的方法

    這篇文章主要介紹了PHP使用stream_context_create()模擬POST/GET請求的方法,結(jié)合實例形式較為詳細的分析了stream_context_create模擬POST/GET請求的原理,使用方法與相關(guān)注意事項,需要的朋友可以參考下
    2016-04-04
  • php socket實現(xiàn)的聊天室代碼分享

    php socket實現(xiàn)的聊天室代碼分享

    這篇文章主要介紹了php socket實現(xiàn)的聊天室代碼分享,本文實現(xiàn)代碼來自國外友人,需要的朋友可以參考下
    2014-08-08
  • 在PHP程序中使用Rust擴展的方法

    在PHP程序中使用Rust擴展的方法

    這篇文章主要介紹了在PHP程序中使用Rust擴展的方法,Rust是近來新興的編譯型語言,性能十分出眾,需要的朋友可以參考下
    2015-07-07

最新評論

临海市| 涞水县| 呼伦贝尔市| 静安区| 商水县| 盐亭县| 中西区| 黄山市| 日照市| 天门市| 达州市| 邻水| 成都市| 马尔康县| 贺兰县| 仪陇县| 慈溪市| 泸州市| 江都市| 合水县| 昭觉县| 梨树县| 泸定县| 宁城县| 石渠县| 临城县| 南乐县| 富裕县| 阳东县| 辽阳市| 田林县| 镇宁| 金溪县| 朔州市| 庆云县| 武功县| 泰来县| 高唐县| 綦江县| 天祝| 白山市|