接口異常的處理規范
一. 統一的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;
}