接口异常的处理规范
一. 统一的API接口返回(错误信息字典)
class Err_Map{
const ERRMAP =array(
// 第一位表示的是哪个控制器
1001 => '请通过正确渠道提交',
1002 => '请输入正确的账号',
1003 => '密码错误',
1004 => '密码错误',
2***,3**** ....
);
public static function get( $code ){
if(isset(ERRMAP[$code])){
return array('errno'=>(0-$code),'errmsg'=>ERRMAP[$code]);
}
return array('error'=>(0-$code),'errmsg'=>'undefinded this error code');
}
}
在具体的控制器方法中
原来的写法
json_encode(['error'=>1002,'errmsg'=>'','data'=>''])
现在
json_encode(Err_Map::get(1002));
在模型中:
list(this->errmsg) = Err_Map::get(1004);
二. 统一的API异常处理(容错与降低)
TryCatch 集中捕获异常处理
try{
可能发生异常的代码
}catch( Exception e->getMessage()));
}
一般用在控制器中调用模型时,为了防止客户端崩溃
try{
uid = uname), pwd));
}catch(Exception $e){
echo json_encode(Err_Map::get(1000));
return false;
}