php的異常處理基礎(chǔ)方法
來(lái)源:程序員人生 發(fā)布時(shí)間:2014-01-27 00:05:18 閱讀次數(shù):3095次
下面來(lái)介紹一下關(guān)于php中異常處理的方法介紹,有需要學(xué)習(xí)的異常處理的朋友可參考本教程.
以下是引用片段:
1.允許一個(gè)方法給出一個(gè)出錯(cuò)標(biāo)記給客戶(hù)代碼
2.提供程序錯(cuò)誤的詳細(xì)信息
3.讓你同時(shí)判斷多個(gè)出錯(cuò)條件,將你的錯(cuò)誤報(bào)告和程序處理流程分開(kāi).
4.返回值必須是獨(dú)立的類(lèi)型,不會(huì)與正常返回的類(lèi)型相混淆
兩個(gè)實(shí)例掌握PHP異常處理
例【1】用 try...catch
實(shí)例代碼如下:
-
- $dsn = 'mysql:host=localhost;dbname=testdb';
- $user = 'dbuser';
- $password = 'dbpass';
- try {
- $dbh = new PDO($dsn, $user, $password);
- echo '如果上面出現(xiàn)異常就不能顯示我了';
- } catch (PDOException $e) {
- echo 'Connection failed: ' . $e->__toString();
- }
- ?>
實(shí)例代碼如下:
- <?php
-
- try {
- $error = '我拋出異常信息,并且跳出try塊';
- if(is_dir('./tests')){
- echo 'do sth.';
- }else{
- throw new Exception($error,12345);
- }
- echo '上面有異常的話(huà)就輪不到我了!~<br />',"n";
- } catch (Exception $e) {
- echo '捕獲異常: ', $e->getMessage(),$e->getCode(), "n<br />";
- }
- echo '繼續(xù)執(zhí)行';
- ?>
上面一個(gè)朋友說(shuō)的,下面我自己來(lái)寫(xiě)了點(diǎn)程序練習(xí)一下:
實(shí)例代碼如下:
- $a = 20;
-
- try
- {
- if($a == 1)
- {
- throw new Exception("I am 1", 1);
- }
- elseif ($a == 2)
- {
- throw new Exception("I am 2", 3);
- }
- elseif ($a == 3)
- {
- throw new Exception("I am 3", 3);
- }
- elseif ($a == 4)
- {
- throw new Exception("I am 4", 4);
- }
- else
- {
- throw new Exception("Who am I ?", 0);
- }
- }
- catch (Exception $e)
- {
- if($e->getCode() == 1)
- {
- echo "1 : ".$e;
- }
- elseif ($e->getCode() == 2)
- {
- echo "2 : ".$e;
- }
- elseif ($e->getCode() == 3)
- {
- echo "3 : ".$e;
- }
- elseif ($e->getCode() == 4)
- {
- echo "4 : ".$e;
- }
- else
- {
- echo "0 : ".$e;
- }
- }
- echo "
-
- --------------------------------------------------------------------------------
- ";
-
- class A extends Exception{};
- class B extends Exception{};
- try
- {
- if($a == 1)
- {
- throw new A("I am A", 1);
- }
- elseif ($a == 2)
- {
- throw new B("I am B", 2);
- }
- else
- {
- throw new Exception("Who am I ?", 0);
- }
- }
- catch (A $e)
- {
- echo "1 : ".$e;
- }
- catch (B $e)
- {
- echo "2 : ".$e;
- }
- catch (Exception $e)
- {
- echo "0 : ".$e;
- }
- ?>
輸出如下:
以下是引用片段:
0 : exception 'Exception' with message 'Who am I ?' in |
D:WebPHPWWWnewtest.php:24 Stack trace: #0 {main}
----------------------------------------------------------------------------
0 : exception 'Exception' with message 'Who am I ?' in D:WebPHPWWWnewtest.php:69 Stack trace: #0 {main}
生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)