- 抛出异常(重要)
- 异常函数
- MsgException
- 全局异常处理
- 异常函数
抛出异常(重要)
RapPHP中鼓励大家学会抛出异常实例:
public function test($a,$b,$c){
if($a=='1'){
throw new MsgException("你没有权限查看");
}
if($b=='1'){
throw new MsgException("内容不存在");
}
try{
// 逻辑代码
}catch (\Exception $exception) {
//能处理就处理
//不能 throw $exception;
}
return ['a'=>$a,'b'=>$b,'c'=>$c];
}
MsgException 集成自\Exception 是我们需要显示给用户的异常信息;如果你的异常也是需要显示给用户的建议集成自MsgException
异常函数
提供了一个exception函数来快捷抛出MsgException异常
exception('异常消息')
MsgException
public function __construct($message, $code=100000, $data = null)
全局异常处理
我们对所有异常包括MsgException和其他Exception都会进行统一处理,处理类为ApiExceptionHandler::class(处理返回结果是 json 的)和PageExceptionHandler::class(处理返回结果是网页的)
如果你想自己自定义处理全局异常你可以继承ApiExceptionHandler或PageExceptionHandler
如你写个类
class MyExceptionHandler extends ApiExceptionHandler{}
然后在 IOC 里注册就可以了
如
class AppInit implements Init{
public function appInit(AutoFindHandlerMapping $autoMapping, Router $router){
//绑定ApiExceptionHandler为MyExceptionHandler
Ioc::bind(ApiExceptionHandler::class,MyExceptionHandler::class);
}
}
上一篇:异常与调试 下一篇:异常显示