四,php异常处理
1,异常处理
异常处理用于在指定的异常或错误发生时,改变脚本的正常执行流程。
<?php try{ //错误或异常 }catch (Exception $ex){ //处理异常 //抛出异常 }
2,catch部分如果没有处理异常,继续抛出,那么php默认的异常处理器进行处理。也可以自己编写一个异常处理器,来处理异常。
<?php function my_exception($e){ echo "我是顶级异常处理"; } set_exception_handler("my_exception"); try{ addUser('aaa'); echo '操作成功!'; }catch (Exception $e){ throw $e; } function addUser($username){ if($username == 'a'){ return true; }else{ throw new Exception('添加失败!'); } }
3,每个try或throw至少对应一个catch。
4,可以使用多个catch代码块,捕获不同种类异常。
<?php class MyException1 extends Exception{ } class MyException2 extends Exception{ } function A(){ throw new MyException1("a"); } function B(){ throw new MyException2("b"); } try{ A(); B(); }catch (MyException1 $e1){ echo $e1->getMessage(); }catch (MyException2 $e2){ echo $e2->getMessage(); }
5,$i = 8/0;fopen('test.txt','r');等不会抛出异常,而是触发错误机制,因此异常机制不会处理这些问题。