日度归档:2009年6月3日

php try catch 在多层应用中的异常捕捉

php的异常处理,当class2中的fun2方法出现异常。中间隔着class1,通过下面的方法就可以非常容易的把异常抛给最外面进行显示!

文件一(index.php)

PHP代码
  1. <?php   
  2. require ‘class1.php’;   
  3. require ‘class2.php’;   
  4. try {   
  5.   
  6.     $class1=new class1;   
  7.     $class1->run();   
  8.   
  9. }catch (Exception $e) {   
  10.     echo ‘输出最终捕捉到的异常:’.$e->getMessage();   
  11. }   
  12. ?>  

 

class1.php

PHP代码
  1. <?php   
  2. class class1   
  3. {   
  4.     function run()   
  5.     {   
  6.         try {   
  7.             $class2=new class2;   
  8.             $class2->fun2();   
  9.   
  10.         }catch (Exception $e) {   
  11.             throw $e;   
  12.         }   
  13.     }   
  14. }   
  15. ?>  

class2.php

PHP代码
  1. <?php   
  2. class class2   
  3. {   
  4.     function fun2()   
  5.     {   
  6.        
  7.         throw new Exception("这里出错了!");   
  8.            
  9.     }   
  10. }   
  11. ?>