自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

PHP自定義異常處理器的幾種使用方法

開(kāi)發(fā) 后端
PHP自定義異常處理器可以幫助我們處理try…catch塊未捕獲的異常,是PHP內(nèi)置的exception_uncaught_handler()函數(shù)來(lái)實(shí)現(xiàn)這一功能。

處理異常在PHP編程中是經(jīng)常要被用到的。我們介紹的這個(gè)PHP自定義異常處理器為PHP內(nèi)置的exception_uncaught_handler()函數(shù)。該函數(shù)可用于設(shè)置用戶自定義的異常處理函數(shù),處理try…catch塊未捕獲的異常。#t#

以下4段代碼為我在waylife項(xiàng)目中的簡(jiǎn)單應(yīng)用(非生產(chǎn)環(huán)境),不健壯也不美化,但該SNS項(xiàng)目早已經(jīng)夭折。

1、異常類(lèi)的層級(jí)關(guān)系:

  1. class NotFoundException extends Exception{}  
  2. class InputException extends Exception{}  
  3. class DBException extends Exception{} 


2、配置未捕捉異常的處理器:

  1. function exception_uncaught_handler(Exception $e) {  
  2. header('Content-type:text/html; charset=utf-8');  
  3. if ($e instanceof NotFoundException)  
  4. exit($e->getMessage());  
  5. elseif ($e instanceof DBException)  
  6. exit($e->getMessage());  
  7. else  
  8. exit($e->getMessage());  
  9. }  
  10. set_exception_handler('exception_uncaught_handler');  

3、在數(shù)據(jù)庫(kù)連接代碼,手動(dòng)拋出DBException異常但未使用try…catch進(jìn)行捕獲處理,該異常將被PHP自定義異常處理器exception_uncaught_handler()函數(shù)處理:

  1. $this->resConn = mysql_connect ($CONFIGS['db_host'], $CONFIGS['db_user'], $CONFIGS['db_pwd']);  
  2. if (false == is_resource($this->resConn))  
  3. throw new DBException('數(shù)據(jù)庫(kù)連接失敗。'.mysql_error($this->resConn)); 


4、業(yè)務(wù)邏輯一瞥:

 

  1. if (0 != strcmp($curAlbum->interest_id, $it))  
  2. throw new NotFoundException('很抱歉,你所訪問(wèn)的相冊(cè)不存在');  

以上就是PHP自定義異常處理器的具體使用方法。

責(zé)任編輯:曹凱 來(lái)源: longlinfeng.com
相關(guān)推薦

2015-06-10 10:54:24

自定義路PHP

2023-11-22 09:45:44

2009-08-05 18:01:20

C#自定義異常處理

2010-08-17 15:31:54

DB2 存儲(chǔ)過(guò)程

2011-12-16 14:23:51

Java

2023-03-30 16:16:00

Java自定義注解開(kāi)發(fā)

2024-08-02 10:21:32

C#Exception類(lèi)自定義異常

2009-12-02 16:04:44

PHP fsockop

2024-03-04 11:13:29

Django數(shù)據(jù)庫(kù)Python

2009-11-30 18:08:30

PHP制作動(dòng)態(tài)計(jì)數(shù)器

2009-12-02 18:51:12

PHP分頁(yè)類(lèi)

2009-11-30 17:43:54

PHP split()

2011-06-16 11:01:56

PHP繼承

2009-12-07 16:52:59

PHP函數(shù)getima

2009-02-10 12:55:39

自定義控件AJAX.NET

2024-11-18 09:18:21

Gin框架驗(yàn)證器

2010-10-25 16:05:07

oracle自定義函數(shù)

2010-11-12 13:34:02

動(dòng)態(tài)sql語(yǔ)句

2024-02-20 08:01:08

SQL注入器MyBatis數(shù)據(jù)庫(kù)

2009-12-02 15:02:09

PHP simplex
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)