使用try{thow}catch(){}异常处理结构,可以有效的控制多行可能发生异常的代码,基本模型如下:
php try { throw new Exception("错误信息";) //抛出一个错误 } catch(Exception $e) //捕获错误信息,Exception是一个内置的错误处理类 { echo $e->getMessage(); //输出错误信息 echo $e->getCode(); //返回异常代码 echo $e->getFile(); //返回发生异常的文件 echo $e->getLine(); //返回发生异常的行号 } ?>
Exception原形:
php class Exception { protected $message = 'Unknown exception'; // 异常信息 private $string; // __toString cache protected $code = 0; // 用户自定义异常代码 protected $file; // 发生异常的文件名 protected $line; // 发生异常的代码行号 private $trace; // backtrace private $previous; // previous exception if nested exception public function __construct($message = null, $code = 0, Exception $previous = null); final private function __clone(); // Inhibits cloning of exceptions. final public function getMessage(); // 返回异常信息 final public function getCode(); // 返回异常代码 final public function getFile(); // 返回发生异常的文件名 final public function getLine(); // 返回发生异常的代码行号 final public function getTrace(); // backtrace() 数组 final public function getPrevious(); // 之前的 exception final public function getTraceAsString(); // 已格成化成字符串的 getTrace() 信息 public function __toString(); // 可输出的字符串 } ?>
同时,一个try也可以关联多个catch块,可以自定义类继承Exception类来实现
本书将PHP开发与MySQL应用相结合,分别对PHP和MySQL做了深入浅出的分析,不仅介绍PHP和MySQL的一般概念,而且对PHP和MySQL的Web应用做了较全面的阐述,并包括几个经典且实用的例子。 本书是第4版,经过了全面的更新、重写和扩展,包括PHP5.3最新改进的特性(例如,更好的错误和异常处理),MySQL的存储过程和存储引擎,Ajax技术与Web2.0以及Web应用需要注意的安全
php class myException1 extends Exception{} //根据需要自定义 class myException2 extends Exception{} class myException3 extends Exception{} try{ switch(1){ case 1:throw new myException1(); case 2:throw new myException2(); case 3:throw new myException3(); //当找不到对应的catch代码块时,将会抛到Exception处理,因为myException3继承了Exception } } catch(myException1 $e){ echo "自定义错误1"; } catch(myException2 $e){ echo "自定义错误2"; } catch(Exception $e){ echo "原始异常类"; } ?>










