中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

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

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

簡(jiǎn)單的使用如下:(通過異常,拋出錯(cuò)誤信息)
復(fù)制代碼 代碼如下:
try {
$error = 'my error!';
throw new Exception($error)
} catch (Exception $e) {
echo $e->getMessage();
}

2、我們可以擴(kuò)展此類,方便我們的使用
復(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)錯(cuò)誤,我們可以執(zhí)行一個(gè)拋出異常的處理。某些編程語言,如Java,,在特定情況下將自動(dòng)拋出異常。在php中,異常必須手動(dòng)拋出。可以使用如下方式拋出一個(gè)異常:
  Throw new Exception(‘message',code);
  Throw 關(guān)鍵字將觸發(fā)異常處理機(jī)制,它是一個(gè)語言結(jié)構(gòu),而不是一個(gè)函數(shù),但是必須給它傳遞一個(gè)值。它要求一個(gè)接受對(duì)象。在最簡(jiǎn)單的情況下,可以實(shí)例化一個(gè)內(nèi)置的Exception類。
  最后,在try代碼之后,必須至少給出一個(gè)catch代碼塊。可以將多個(gè)catch代碼塊與一個(gè)try代碼塊進(jìn)行關(guān)聯(lián)。如果每個(gè)catch代碼塊可以捕獲一個(gè)不同類型的異常,可以使用多個(gè)catch代碼塊是有意義的。例如,如果想捕獲Exception類的異常,代碼如下
復(fù)制代碼 代碼如下:
Catch(Exception $e)
{
//handing exception
}
Catch代碼捕獲的對(duì)象就是導(dǎo)致異常并傳遞給throw語句的對(duì)象(被throw 語句拋出)。使用Exception 類的實(shí)例,是不錯(cuò)的選擇。
Exception類提供了如下的內(nèi)置方法:
  Getcode()   ―返回傳遞給構(gòu)造函數(shù)的代碼。
  GetMessage() ―返回傳遞給構(gòu)造函數(shù)的消息。
  getFile()     ―返回產(chǎn)生異常代碼的文件的路徑
  getLine()    ―返回產(chǎn)生異常的代碼所在的行。

注意:
當(dāng)捕獲到一個(gè)異常后,try()塊里面的后續(xù)代碼將不會(huì)繼續(xù)執(zhí)行,而是會(huì)嘗試查找匹配的“catch”代碼塊
當(dāng)拋出一個(gè)異常后,如果不進(jìn)行catch處理,則會(huì)報(bào)“Uncaught exception 'Exception'”錯(cuò)誤
復(fù)制代碼 代碼如下:
<?php
function test($val){
if ($val>100){
throw new Exception("提示信息:您輸入的值過大");
}
}
test(111);
?>

3.當(dāng)一個(gè)異常拋出后,catch語句塊可以進(jìn)行處理也可以不處理
以下是我用戶注冊(cè)功能的部分代碼
復(fù)制代碼 代碼如下:
try{
//check forms filled in
if(!filled_out($_POST)){
throw new Exception('你還沒有填寫表單,請(qǐng)回去填寫');
}
//check email address not valid
if(!check_email($email)){
throw new Exception('郵件的格式不正確');
}
//檢查密度的長(zhǎng)度是否大于6
if(strlen($passwd<6)){
throw new Exception('密度的長(zhǎng)度應(yīng)該大于6');
}
//檢查兩次密碼是否相等
if($passwd!=$passwd1){
throw new Exception('兩次密碼不一樣,請(qǐng)重新輸入');
}
//檢查用戶名的長(zhǎng)度是否正確
if(strlen($username)>16){
throw new Exception('用戶名的長(zhǎng)度不符,請(qǐng)重新輸入');
}
} catch(Exception $e){
echo $e->getMessage(); //輸出異常信息。
}

php技術(shù)PHP的異常處理類Exception的使用及說明,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 精品福利在线视频 | 亚洲欧美视频一区 | 成人黄色电影在线播放 | 99久久中文字幕三级久久日本 | 欧美日韩电影免费观看 | 天天色天天射天天干 | 中文字幕第二十页 | 国产剧情一区 | 黄色毛片免费视频 | 18gay男同69亚洲网站 | 中文在线a在线 | 婷婷狠狠 | 国产99久久 | 欧美久久久网站 | 夜夜摸天天操 | 操操日 | 国产精品不卡一区 | 国产一级视频在线观看 | 欧美 中文字幕 | 国产精产国品一二三产区视频 | 激情国产 | 97国产爽爽爽久久久 | 亚洲国产精品99久久久久久久久 | 国产中文字幕在线观看 | 另类亚洲视频 | 国产午夜精品久久 | 欧美国产日韩精品 | 一区二区福利视频 | 亚洲日本一区二区三区四区 | 玖草资源 | 激情三区| 操操日 | 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 欧美a∨ | 中文字幕国产视频 | 国产片侵犯亲女视频播放 | 男女网站免费观看 | 久久久国产一区二区三区 | 男女羞羞在线观看 | 亚洲精品成人 | 亚洲一区二区三区在线免费 |