php的异常处理基础方法

下面来介绍一下关于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} 

波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 本站源码并不保证全部能正常使用,仅供有技术基础的人学习研究,请谨慎下载
8. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » php的异常处理基础方法

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡