国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php的異常處理基礎方法

2024-05-04 21:57:45
字體:
來源:轉載
供稿:網友

下面來介紹一下關于php中異常處理的方法介紹,有需要學習的異常處理的朋友可參考本教程.

以下是引用片段:

1.允許一個方法給出一個出錯標記給客戶代碼 

2.提供程序錯誤的詳細信息 

3.讓你同時判斷多個出錯條件,將你的錯誤報告和程序處理流程分開.

4.返回值必須是獨立的類型,不會與正常返回的類型相混淆

兩個實例掌握PHP異常處理

例【1】用 try...catch

實例代碼如下:

  1. /* PDO連接mysql數據庫,如果沒看過PDO,先看下PDO的構造函數,要不跳過例1看例2 */  
  2. $dsn = 'mysql:host=localhost;dbname=testdb';  
  3. $user = 'dbuser';  
  4. $password = 'dbpass';  
  5. try {  
  6. $dbh = new PDO($dsn$user$password); //創建數據庫連接對象容易出現異常  
  7. echo '如果上面出現異常就不能顯示我了';  
  8. } catch (PDOException $e) {  
  9. echo 'Connection failed: ' . $e->__toString();  
  10. }  
  11. ?> 

實例代碼如下:

  1. <?php  
  2. //例[2] try..cathc 和 throw一起用  
  3. try {  
  4. $error = '我拋出異常信息,并且跳出try塊';  
  5. if(is_dir('./tests')){  
  6. echo 'do sth.';  
  7. }else{  
  8. throw new Exception($error,12345);  
  9. }  
  10. echo '上面有異常的話就輪不到我了!~<br />',"n";  
  11. } catch (Exception $e) {  
  12. echo '捕獲異常: '$e->getMessage(),$e->getCode(), "n<br />"//顯示$error和123456  
  13. }  
  14. echo '繼續執行';  
  15. ?> 

上面一個朋友說的,下面我自己來寫了點程序練習一下:

實例代碼如下:

  1. $a = 20; 
  2. // 使用常規catch的例子 
  3. try  
  4.   if($a == 1) 
  5.   { 
  6.     throw new Exception("I am 1", 1); 
  7.   } 
  8.   elseif ($a == 2) 
  9.   { 
  10.     throw new Exception("I am 2", 3); 
  11.   } 
  12.   elseif ($a == 3) 
  13.   { 
  14.     throw new Exception("I am 3", 3); 
  15.   } 
  16.   elseif ($a == 4) 
  17.   { 
  18.     throw new Exception("I am 4", 4); 
  19.   } 
  20.   else 
  21.   { 
  22.     throw new Exception("Who am I ?", 0); 
  23.   } 
  24. catch (Exception $e
  25.   if($e->getCode() == 1) 
  26.   { 
  27.     echo "1 : ".$e
  28.   } 
  29.   elseif ($e->getCode() == 2) 
  30.   { 
  31.     echo "2 : ".$e
  32.   } 
  33.   elseif ($e->getCode() == 3) 
  34.   { 
  35.     echo "3 : ".$e
  36.   } 
  37.   elseif ($e->getCode() == 4) 
  38.   { 
  39.     echo "4 : ".$e
  40.   } 
  41.   else 
  42.   { 
  43.     echo "0 : ".$e
  44.   } 
  45. echo " 
  46.  
  47. -------------------------------------------------------------------------------- 
  48. "; 
  49. // 使用不同的擴展異常類的例子 
  50. class A extends Exception{}; 
  51. class B extends Exception{}; 
  52. try 
  53.  if($a == 1) 
  54.   { 
  55.     throw new A("I am A", 1); 
  56.   } 
  57.   elseif ($a == 2) 
  58.   { 
  59.     throw new B("I am B", 2); 
  60.   } 
  61.   else 
  62.   { 
  63.     throw new Exception("Who am I ?", 0); 
  64.   } 
  65. catch (A $e
  66.   echo "1 : ".$e
  67. catch (B $e
  68.   echo "2 : ".$e
  69. catch (Exception $e
  70.   echo "0 : ".$e
  71. ?>  

輸出如下:

以下是引用片段:

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} 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 拉萨市| 武隆县| 虎林市| 普宁市| 司法| 台江县| 固镇县| 囊谦县| 梁平县| 云安县| 卢氏县| 丰顺县| 错那县| 玛曲县| 昌黎县| 河北区| 安溪县| 内乡县| 交口县| 南华县| 通城县| 长丰县| 商洛市| 望奎县| 弥渡县| 迁西县| 台北市| 涞水县| 视频| 雅安市| 城固县| 肇东市| 婺源县| 澄迈县| 浦北县| 鄂尔多斯市| 台江县| 璧山县| 依兰县| 莫力| 西丰县|