面向?qū)ο蟮娇蚣艿恼n件lamp cphp設(shè)計(jì)_第1頁(yè)
面向?qū)ο蟮娇蚣艿恼n件lamp cphp設(shè)計(jì)_第2頁(yè)
面向?qū)ο蟮娇蚣艿恼n件lamp cphp設(shè)計(jì)_第3頁(yè)
面向?qū)ο蟮娇蚣艿恼n件lamp cphp設(shè)計(jì)_第4頁(yè)
面向?qū)ο蟮娇蚣艿恼n件lamp cphp設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PHP面向?qū)ο蟮脑O(shè)計(jì)06主講:郵箱:微博:課前復(fù)習(xí)預(yù)習(xí)檢查本章任務(wù)1.PHP的異常處理2.PHP中類與對(duì)象的相關(guān)函數(shù)1.異常處理異常(Exception)處理用于在指定的錯(cuò)誤發(fā)生時(shí)改變腳本的正常流程。是PHP5中的一個(gè)新的重要特性。異常處理是一種可擴(kuò)展、易維護(hù)的錯(cuò)誤處理統(tǒng)一機(jī)制,并提供了一種新的面向?qū)ο蟮腻e(cuò)誤處理方式。異常處理格式:

try{

使用try去包含可能會(huì)發(fā)生異常的代碼.

一旦出現(xiàn)異常try進(jìn)行捕獲異常,交給catch處理。

拋出異常語(yǔ)句:throw異常對(duì)象。 }catch(異常對(duì)象參數(shù)){

在這里做異常處理。 }[catch(。,,){

...... }]一個(gè)簡(jiǎn)單異常處理實(shí)例<?php

try{ $error='Alwaysthrowthiserror'; thrownewException($error);

//創(chuàng)建一個(gè)異常對(duì)象,通過(guò)throw語(yǔ)句拋出

echo'Never

executed';

//從這里開(kāi)始,try代碼塊內(nèi)的代碼將不會(huì)再被執(zhí)行

}catch(Exception$e){ echo‘Caughtexception:’.$e->getMessage()."\n";

//輸出捕獲的異常消息

} echo'HelloWorld';//程序沒(méi)有崩潰繼續(xù)向下執(zhí)行系統(tǒng)自帶異常處理<?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();

//

可輸出的字符串

}自定義異常<?php /*自定義的一個(gè)異常處理類,但必須是擴(kuò)展內(nèi)異常處理類的子類*/ classMyExceptionextendsException{ //重定義構(gòu)造器使第一個(gè)參數(shù)message變?yōu)楸仨毐恢付ǖ膶傩?/p>

publicfunction__construct($message,$code=0){ //可以在這里定義一些自己的代碼

//建議同時(shí)調(diào)用parent::construct()來(lái)檢查所有的變量是否已被賦值

parent::__construct($message,$code); } publicfunction__toString(){//重寫父類方法,自定義字符串輸出的樣式

return__CLASS__.":[".$this->code."]:".$this->message."<br>"; } publicfunctioncustomFunction(){//為這個(gè)異常自定義一個(gè)處理方法

echo"按自定義的方法處理出現(xiàn)的這個(gè)類型的異常<br>"; } }?>自定義異常<?phptry{//使用自定義的異常類捕獲一個(gè)異常,并處理異常

$error='允許拋出這個(gè)錯(cuò)誤'; thrownewMyException($error); //創(chuàng)建一個(gè)自定義的異常類對(duì)象,通過(guò)throw語(yǔ)句拋出

echo'Neverexecuted'; //從這里開(kāi)始,try代碼塊內(nèi)的代碼將不會(huì)再被執(zhí)行

}catch(MyException$e){//捕獲自定義的異常對(duì)象

echo'捕獲異常:'.$e;//輸出捕獲的異常消息

$e->customFunction();//通過(guò)自定義的異常對(duì)象中的方法處理異常

} echo'你好呀';//程序沒(méi)有崩潰繼續(xù)向下執(zhí)行捕獲多個(gè)異常在try代碼之后,必須至少給出一個(gè)catch代碼塊,也可以將多個(gè)catch代碼塊與一個(gè)try代碼塊關(guān)聯(lián)使用。那么使用多個(gè)catch就可以捕獲不同的類所產(chǎn)生的異常。注意順序。2.PHP中類與對(duì)象的相關(guān)函數(shù)1.class_exists—檢查類是否已定義格式: boolclass_exists(string$class_name[,bool$autoload]) --如果由class_name所指的類已經(jīng)定義,此函數(shù)返回TRUE,否則返回FALSE。

默認(rèn)將會(huì)嘗試調(diào)用__autoload,如果不想讓class_exists()調(diào)用__autoload,可以將autoload參數(shù)設(shè)為FALSE。2.get_class_methods—返回由類的方法名組成的數(shù)組格式:arrayget_class_methods(mixed$class_name)返回由class_name指定的類中定義的方法名所組成的數(shù)組。如果出錯(cuò),則返回NULL。從PHP4.0.6開(kāi)始,可以指定對(duì)象本身來(lái)代替class_name3.get_class—返回對(duì)象的類名格式:stringget_class([object$obj])返回對(duì)象實(shí)例obj所屬類的名字。如果obj不是一個(gè)對(duì)象則返回FALSE。4.get_object_vars—返回由對(duì)象屬性組成的關(guān)聯(lián)數(shù)組格式:arrayget_object_vars(object$obj)返回由obj指定的對(duì)象中定義的屬性組成的關(guān)聯(lián)數(shù)組。5.get_parent_class—返回對(duì)象或類的父類名格式:stringget_parent_class([mixed$obj])如果obj是對(duì)象,則返回對(duì)象實(shí)例obj所屬類的父類名。6.is_a—如果對(duì)象屬于該類或該類是此對(duì)象的父類則返回TRUE格式:boolis_a(object$object,string$class_name)我們可以使用運(yùn)算符:instanceof代替上面的is_a操作7.method_exists—檢查類的方法是否存在格式:boolmethod_exists(object$object,string$method_name)如果method_name所指的方法在object所指的對(duì)象類中已定義,則返回TRUE,否則返回FALSE。8

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論