thinkphp 如何自定义一个错误处理类

异常处理

tp5提供了一个异常处理接管

例如你新建了一个异常处理接管的类

- 手册:在config 中 

	// 异常处理handle类 
	exception_handle'       => 'app\common\lib\ApiHandleException', 
	
	## 我在common\lib 下创建了一个 ApiHandleException 类
	
	<?php 
		namespace app\common\lib;
		use Exception;
		use think\exception\Handle;
		use app\common\lib\ApiException;


		// 异常处理接管
		class ApiHandleException extends Handle
		{
			protected $httpCode = 500;

			/** $httpCode http 状态码
			 *  $e->getMessage() 异常信息
			 */
			public function render(\Exception $e){
			
				// 通过调用 ApiException 来获取当前的错误来源,默认是当是ApiException表明是系统识别的异常错误,默认为其他错误,也就try catch 触发的错误
				// 检查归属的类型
				if($e instanceof ApiException){
					$this->httpCode = $e->httpCode;
				}
				
				// showJson 是我自定义的一个公共函数,用来返回一写json数据
				// (int status:状态,$e->getMessage():返回的错误信息,[]:返回的数据,$this->httpCode 状态码)
				return showJson(0,$e->getMessage(),[],$this->httpCode);
		   }


		}

ApiException

<?php 
namespace app\common\lib;
use Exception;


// 自定义异常
class ApiException extends Exception {

	public $message = '';
	public $httpCode = 500;
	public $code = 0;

	public function __construct($message='',$httpCode=500,$code=0){
		$this->httpCode = $httpCode;
		$this->message = $message;
		$this->code = $code;
	}


}
posted @ 2018-05-19 22:55  mysure  阅读(1185)  评论(0编辑  收藏  举报