面向过程的异常处理是一种不是很好的异常处理方式,但是它能够帮助初学者理解异常处理的流畅思路,也是比较有意义的。
异常一般是发生在model层的业务代码中,在面向对象的处理流程中业务代码要实现异常的捕获和抛出,具体实现代码如下
public static function getBannerByID($id){
//TODO:根据Banner ID号获取Banner信息
try{
1/0; //发生异常
}
catch (Exception $ex)//异常的捕获
{
//TODO:处理异常(可以记录日志)
throw $ex;//异常的抛出
}
return 'this is banner info';
}
要在接口代码中实现异常的捕获并将异常的信息返回客户端。
异常接口代码中要注意三点:
1、数组$err是构造满足rest要求的错误信息的数组,包括错误码、错误信息、发生错误的URL;
2、$ex是业务代码抛出的异常,getMessage()函数是内置的获得错误信息的函数可直接调用;
3、返回错误信息的时候不能直接用return $err,而要用json($err,400),这么做是为了将错误信息规范成json格式。其中$err是错误信息,400是发生错误的状态码。如果没有400,则客户端会得到默认的200信息,200 表示正常访问,这当然和发生异常的实际情况不相符。
网友评论