<?php
//我们使用异常机制来处理
try{
addUser("shunping");
updateUser("xxx");
}
//catch捕获 Exception 是异常类(是php定义好的类)
catch(Exception $e){
echo '失败信息:'.$e->getMessage();
}
function addUser($username){
if($username=="shunping"){
//添加ok
}else{
throw new Exception("添加失败");
}
}
function updateUser($name){
if($name=="xiaoming"){
//正常修改
}else{
throw new Exception("修改失败");
}
}
?>
用 try catch 可以更有效的控制错误,所以在开发中大量的使用
php默认异常处理器
set_exception_handler(message);
<?php
//定义一个顶级异常处理器
function myException($e){
echo "我是顶级异常处理器".$e->getMessage()."--".$e->getCode();
}
set_exception_handler("myException");
function a1($val){
if($val>100){
throw new Exception("val<100");
}
}
function a2($val){
if($val=="hello"){
throw new Exception("不要输入hello");
}
}
try {
a2("hello");
} catch (Exception $e) {
//捕获.
//error_log($e->getMessage(),3,"d:/error.txt");
//可以继续抛出
throw $e;
}
?>
class MyException extends Exception{
//代码
}
<?php
//定义了一个异常
class MyException1 extends Exception{
}
class MyException2 extends Exception{
}
function A(){
throw new MyException1("异常1");
}
function B(){
throw new MyException2("异常2");
}
function C(){
try{
A();
B();
}catch(MyException1 $e1){
$e1->getMessage();
}catch(MyException2 $e2){
$e2->getMessage();
}
}
?>