中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP set_error_handler()函數的使用之二

發布時間:2020-07-07 17:05:42 來源:網絡 閱讀:871 作者:好奇喵 欄目:web開發

phpWind的前端控制器AbstractWindFrontController.php中是這樣使用的,



/**
     * 創建并執行當前應用,單應用訪問入口
     */
    public function run() {
        $this->_app = $this->createApplication($this->_config['web-apps'][$this->_appName],
            WindFactory::_getInstance());
        
        set_error_handler(array($this, '_errorHandle'), error_reporting());//調用了當前抽象類中的_errorHandle()方法
        set_exception_handler(array($this, '_exceptionHandle'));
        if ($this->_config['isclosed']) {
            throw new Exception('Sorry, Site has been closed!');
        }
        if ($this->_chain !== null) $this->_chain->getHandler()->handle('onCreate');
        /* @var $router WindRouter */
        $router = $this->_app->getFactory()->getInstance('router');
        $router->route($this->_app->getRequest());
        
        if ($this->_chain !== null) $this->_chain->getHandler()->handle('onStart');
        $this->_app->run($router);
        
        if ($this->_chain !== null) $this->_chain->getHandler()->handle('onResponse');
        $this->_app->getResponse()->sendResponse();
        $this->_app->getFactory()->executeDestroyMethod();
        restore_error_handler();
        restore_exception_handler();
    }



    /**
     * 錯誤處理句柄
     *
     * @param int $errno        
     * @param string $errstr        
     * @param string $errfile        
     * @param int $errline        
     */
    public function _errorHandle($errno, $errstr, $errfile, $errline) {
        if (0 === error_reporting()) return;
        restore_error_handler();
        /* @var $error WindError */
        $error = $this->_app->getFactory()->getInstance('error',
            array(
                $this->_config['web-apps'][$this->_appName]['error-dir'],
                $this->_config['isclosed']));
        $error->errorHandle($errno, $errstr, $errfile, $errline);
    }


最后調用了WindError基類中的errorHandle()方法,用showErrorMessage()將錯誤拋出,如下:

    /**
     * 錯誤處理句柄
     *
     * @param int $errno
     * @param string $errstr
     * @param string $errfile
     * @param int $errline
     */
    public function errorHandle($errno, $errstr, $errfile, $errline) {
        $trace = array();
        if (Wind::$isDebug) {
            $trace = debug_backtrace();
            unset($trace[0]["function"], $trace[0]["args"]);
        }
        $this->showErrorMessage($this->_friendlyErrorType($errno) . ': ' . $errstr, $errfile,
            $errline, $trace, $errno);
    }

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

慈利县| 郓城县| 沈阳市| 乾安县| 绵阳市| 台山市| 分宜县| 衡阳县| 滁州市| 台南县| 五原县| 门头沟区| 水富县| 横峰县| 恭城| 永昌县| 阿合奇县| 莲花县| 红河县| 鹰潭市| 仁寿县| 镇赉县| 新营市| 松原市| 沁源县| 修武县| 定州市| 安平县| 咸丰县| 嘉义市| 和林格尔县| 桐庐县| 鄯善县| 都兰县| 辽中县| 大安市| 岢岚县| 清远市| 汉川市| 太仆寺旗| 孟连|