1、什么是异常处理?
处理不正常的状态、处理错误
2、为什么使用异常处理?
异常处理可以帮助我们更加智能的处理错误
3、什么时候使用异常处理?
使用PDO连接数据库的时候会使用异常处理
4、如何使用异常处理?
1)异常处理类:Exception
方法:
getMessage() 获得异常信息
getCode() 获得异常号
2)异常处理类可以进行拓展继承
3)捕获多个异常,要将Exception捕获放在最后
/* try{ 尝试执行第一个业务 如果业务发生异常,将异常抛出 若发生异常则第一个业务的后续将不再执行 ..... }catch(Exception $e){ 处理异常 } 第二个业务 */ try{ echo "闹钟响了,该起床了<hr>"; //$f=true; $f=false; if(!$f){ //将异常抛出 throw new Exception("没起来",1); } //如果发生异常,该代码不会再执行 echo "刷牙,洗脸...<hr>"; }catch(Exception $e){ //处理异常 echo "异常信息:".$e->getMessage()."<hr>"; echo "异常号:".$e->getCode()."<hr>"; echo "抛出异常的文件路径:".$e->getFile()."<hr>"; echo "抛出异常的所在行:".$e->getLine()."<hr>"; } echo "上班去了";
//对默认异常类Exception进行拓展 class MyException extends Exception{ public function __toString(){ return serialize($this); } public function wc(){ echo "蹲了个厕所<hr>"; } } try{ echo "闹钟响了,该起床了<hr>"; $f1=true; //$f1=false; if(!$f1){ //将异常抛出 throw new MyException("没时间蹲厕所",0); } echo $e=new MyException; echo "<hr>"; echo $e->wc(); echo "刷牙,洗脸...<hr>"; //$f2=true; $f2=false; if(!$f2){ //将异常抛出 throw new Exception("没起来",1); } echo "吃早餐<hr>"; }catch(MyException $e){ //处理异常 echo "异常信息:".$e->getMessage()."<hr>"; echo "异常号:".$e->getCode()."<hr>"; echo "抛出异常的文件路径:".$e->getFile()."<hr>"; echo "抛出异常的所在行:".$e->getLine()."<hr>"; }catch(Exception $e){ //处理异常 echo "异常信息:".$e->getMessage()."<hr>"; echo "异常号:".$e->getCode()."<hr>"; echo "抛出异常的文件路径:".$e->getFile()."<hr>"; echo "抛出异常的所在行:".$e->getLine()."<hr>"; } echo "上班去了";