久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

PHP基礎(chǔ)之異常處理2——擴(kuò)展 PHP 內(nèi)置的異常處理類

瀏覽:24日期:2022-09-15 09:24:34

用戶可以用自定義的異常處理類來擴(kuò)展 PHP 內(nèi)置的異常處理類。以下的代碼說明了在內(nèi)置的異常處理類中,哪些屬性和方法在子類中是可訪問和可繼承的。譯者注:以下這段代碼只為說明內(nèi)置異常處理類的結(jié)構(gòu),它并不是一段有實(shí)際意義的可用代碼。

Example #1 內(nèi)置的異常處理類

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

如果使用自定義的類來擴(kuò)展內(nèi)置異常處理類,并且要重新定義構(gòu)造函數(shù)的話,建議同時(shí)調(diào)用?parent::__construct()?來檢查所有的變量是否已被賦值。當(dāng)對(duì)象要輸出字符串的時(shí)候,可以重載?__toString()?并自定義輸出的樣式。

Example #2 擴(kuò)展 PHP 內(nèi)置的異常處理類

<?php /** * 自定義一個(gè)異常處理類 */ class MyException extends Exception {// 重定義構(gòu)造器使 message 變?yōu)楸仨毐恢付ǖ膶傩詐ublic 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 exceptionn';} } /** * 創(chuàng)建一個(gè)用于測(cè)試異常處理機(jī)制的類 */ class TestException {public $var;const THROW_NONE = 0;const THROW_CUSTOM = 1;const THROW_DEFAULT = 2;function __construct($avalue = self::THROW_NONE) { switch ($avalue) {case self::THROW_CUSTOM: // 拋出自定義異常 throw new MyException(’1 is an invalid parameter’, 5); break;case self::THROW_DEFAULT: // 拋出默認(rèn)的異常 throw new Exception(’2 isnt allowed as a parameter’, 6); break;default: // 沒有異常的情況下,創(chuàng)建一個(gè)對(duì)象 $this->var = $avalue; break; }} } // 例子 1 try {$o = new TestException(TestException::THROW_CUSTOM); } catch (MyException $e) { // 捕獲異常echo 'Caught my exceptionn', $e;$e->customFunction(); } catch (Exception $e) { // 被忽略echo 'Caught Default Exceptionn', $e; } // 執(zhí)行后續(xù)代碼 var_dump($o); echo 'nn'; // 例子 2 try {$o = new TestException(TestException::THROW_DEFAULT); } catch (MyException $e) { // 不能匹配異常的種類,被忽略echo 'Caught my exceptionn', $e;$e->customFunction(); } catch (Exception $e) { // 捕獲異常echo 'Caught Default Exceptionn', $e; } // 執(zhí)行后續(xù)代碼 var_dump($o); echo 'nn'; // 例子 3 try {$o = new TestException(TestException::THROW_CUSTOM); } catch (Exception $e) { // 捕獲異常echo 'Default Exception caughtn', $e; } // 執(zhí)行后續(xù)代碼 var_dump($o); echo 'nn'; // 例子 4 try {$o = new TestException(); } catch (Exception $e) { // 沒有異常,被忽略echo 'Default Exception caughtn', $e; } // 執(zhí)行后續(xù)代碼 var_dump($o); echo 'nn';?>

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 国产成人一区二区三区影院在线 | 性视频亚洲| 国产欧美一区二区精品久久 | 特大毛片 | 色吊丝在线永久观看最新版本 | 在线观看国产一区 | 亚洲综合精品久久 | 欧美亚洲日本 | 亚洲视频观看 | 亚洲自拍一区在线 | 欧美黄色网| 日本不卡免费新一二三区 | 毛片区| 日本免费网站 | 日本aa级毛片免费观看 | 国产午夜一区二区三区 | 男人的天堂亚洲 | 一级激情片 | 国产精品二区一区二区aⅴ污介绍 | 亚洲人成中文字幕在线观看 | 亚洲精品视频免费看 | 看黄网址| 国产成人av在线 | 国产激情网站 | 久久久婷 | 日韩中文字幕在线免费 | 欧美在线一区二区 | 成人亚洲精品久久久久 | 久久av资源| 明里在线观看 | 国产91视频一区二区 | 久久精品免费 | 欧美一区二区三区男人的天堂 | 中文成人在线 | 欧美日韩成人在线视频 | 国产精品日产欧美久久久久 | 欧美三级影院 | 日韩国产| 九色91 | 久久久久国产一区二区三区 | 国产精品国产精品国产专区不卡 |