zoukankan      html  css  js  c++  java
  • thinkphp 如何自定义一个错误处理类

    异常处理

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

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

    - 手册:在config 中 
    
    	// 异常处理handle类 
    	exception_handle'       => 'appcommonlibApiHandleException', 
    	
    	## 我在commonlib 下创建了一个 ApiHandleException 类
    	
    	<?php 
    		namespace appcommonlib;
    		use Exception;
    		use thinkexceptionHandle;
    		use appcommonlibApiException;
    
    
    		// 异常处理接管
    		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 appcommonlib;
    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;
    	}
    
    
    }
  • 相关阅读:
    windows下面Nginx日志切割
    C#通过DocX创建word
    leetcode 189 Rotate Array
    leetcode 172 Factorial Trailing Zeroes
    leetcode 169 Majority Element 冰山查询
    leetcode 165 Compare Version Numbers
    leetcode 160 Intersection of Two Linked Lists
    【windows-》linux】SCP
    【设计】B端和C端区别
    【Flask】部署
  • 原文地址:https://www.cnblogs.com/ar13/p/9061992.html
Copyright © 2011-2022 走看看