PHP5 OOP編程中的代理與異常(4)_PHP教程
推薦:詳細(xì)介紹php5編程中的異常處理1 首先是try,catch <?php $path = "D:\\in.txt"; try //檢測異常 { file_open($path); } catch(Exception $e) //捕獲異常 { echo $e->getMessage(); } function
四、 使用繼承拋出定制異常
在PHP中,你可以拋出任何對象作為一個(gè)異常;但是,首先該異常應(yīng)該繼承自PHP的內(nèi)置異常類。通過創(chuàng)建你自己的定制異常,你可以記錄其它有關(guān)于該錯(cuò)誤的信息,例如在一個(gè)日志文件中創(chuàng)建一個(gè)入口,或做你喜歡做的任何事情。你的定制異常將要做如下幾件事情:
· 記錄由查詢產(chǎn)生的來自DB對象的錯(cuò)誤消息。
· 給出查詢錯(cuò)誤發(fā)生所在行代碼的準(zhǔn)確細(xì)節(jié)—通過檢查調(diào)用棧。
· 顯示錯(cuò)誤消息和查詢文本—當(dāng)被轉(zhuǎn)換成一個(gè)字符串時(shí)。
為了得到錯(cuò)誤信息和查詢文本,需要對DBQuery對象作多處更改。
1. 一個(gè)新的protected屬性—compiledQuery—需要被添加到類中。
2. compile()函數(shù)使用查詢文本更新查詢compiledQuery屬性。
3. 應(yīng)該加入一個(gè)檢索編譯的查詢文本的函數(shù)。
4. 還應(yīng)該加入一個(gè)函數(shù)—它得到當(dāng)前的與DBQuery對象相關(guān)聯(lián)的DB對象。
列表4.拋出一個(gè)異常。
| class DBQuery { /** *在調(diào)用compile()或execute()之后存儲(chǔ)查詢的編譯版本 * * @var string $compiledQuery */ protected $compiledQuery; /** * 返回編譯的查詢而不執(zhí)行它。 * @參數(shù):mixed $params,...查詢參數(shù) * @返回:字符串—編譯的查詢 */ public function compile($params='') { if (! $this->stored_procedure) { throw new Exception("存儲(chǔ)過程沒被初始化."); } /*代替參數(shù)*/ $params = func_get_args(); //得到函數(shù)參數(shù) $query = preg_replace("/(?compile_callback($params, 1, "2")', $this->query); return ($this->compiledQuery = $this->add_strings($query)); //把字符串放回查詢中 } public function getDB() { return $this->db; } public function getCompiledQuery() { return $this->compiledQuery; } } |
現(xiàn)在,你可以實(shí)現(xiàn)QueryException類。注意你是如何遍歷調(diào)用棧以在腳本中查找實(shí)際導(dǎo)致錯(cuò)誤的位置的。這正好適用于當(dāng)拋出異常的DBQuery對象是一個(gè)繼承自DBQuery對象的子類的情況。
分享:Zend Framework 入門——頁面布局Zend Framework 的頁面布局模塊——Zend_Layout——既可以跟 MVC 一起使用,也可以單獨(dú)使用。本文只討論與 MVC 一起使用的情況。 1. 布局腳本 在 application/views 下
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁面代碼執(zhí)行時(shí)間
- PHP中獎(jiǎng)概率的抽獎(jiǎng)算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問控制的和運(yùn)算符優(yōu)先級(jí)介紹
- 關(guān)于PHP語言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國語言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
PHP教程Rss訂閱編程教程搜索
PHP教程推薦
- php curl的深入解析
- PHP時(shí)間戳與日期之間轉(zhuǎn)換的實(shí)例介紹
- 詳解PHP內(nèi)置訪問資源的超時(shí)時(shí)間 time_out file_get_contents read_file
- PHP實(shí)例:精確到每一秒鐘的在線人數(shù)顯示代碼
- PHP教程之入門需要掌握的幾種功能代碼
- 小荷才露尖尖角 中國的PHP社群介紹
- cmd運(yùn)行php
- 用PHP程序?yàn)樽约壕W(wǎng)站打造一個(gè)搜索引擎
- 加速動(dòng)態(tài)網(wǎng)站 MySQL索引分析和優(yōu)化
- 深入phpMyAdmin的安裝與配置的詳細(xì)步驟
- 相關(guān)鏈接:
- 教程說明:
PHP教程-PHP5 OOP編程中的代理與異常(4)
。