php的異常處理基礎方法
來源:程序員人生 發布時間:2014-01-27 00:05:18 閱讀次數:3109次
下面來介紹一下關于php中異常處理的方法介紹,有需要學習的異常處理的朋友可參考本教程.
以下是引用片段:
1.允許一個方法給出一個出錯標記給客戶代碼
2.提供程序錯誤的詳細信息
3.讓你同時判斷多個出錯條件,將你的錯誤報告和程序處理流程分開.
4.返回值必須是獨立的類型,不會與正常返回的類型相混淆
兩個實例掌握PHP異常處理
例【1】用 try...catch
實例代碼如下:
-
- $dsn = 'mysql:host=localhost;dbname=testdb';
- $user = 'dbuser';
- $password = 'dbpass';
- try {
- $dbh = new PDO($dsn, $user, $password);
- echo '如果上面出現異常就不能顯示我了';
- } catch (PDOException $e) {
- echo 'Connection failed: ' . $e->__toString();
- }
- ?>
實例代碼如下:
- <?php
-
- try {
- $error = '我拋出異常信息,并且跳出try塊';
- if(is_dir('./tests')){
- echo 'do sth.';
- }else{
- throw new Exception($error,12345);
- }
- echo '上面有異常的話就輪不到我了!~<br />',"n";
- } catch (Exception $e) {
- echo '捕獲異常: ', $e->getMessage(),$e->getCode(), "n<br />";
- }
- echo '繼續執行';
- ?>
上面一個朋友說的,下面我自己來寫了點程序練習一下:
實例代碼如下:
- $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}
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈