public function register($errorLevel = \E_WARNING)
    {
        if (!$this->isRegistered) {
    //      ini_set('display_errors', false);
    
            /**
             * 注册自定义异常处理
             */
            set_exception_handler([$this, 'handleException']);
            
            /**
             * error_types 里指定的错误类型都会绕过 PHP 标准错误处理程序， 除非回调函数返回了 FALSE。
             * error_reporting() 设置将不会起到作用而你的错误处理函数继续会被调用 —— 不过你仍然可以获取 error_reporting 的当前值，并做适当处理。 
             * 需要特别注意的是带 @ error-control operator 前缀的语句发生错误时，这个值会是 0。
             */
            if (!isset($errorLevel)) $errorLevel = \E_WARNING;
            set_error_handler([$this, 'handleError'], $errorLevel);
            
            if ($this->options['memory_reserve_size'] > 0) {
                $this->_memoryReserve = str_repeat('x', $this->options['memory_reserve_size']);
            }
            
            /**
             * 注册一个 callback ，会在脚本执行完成或者 exit() 后被调用。
             */
            register_shutdown_function([$this, 'handleFatalError']);
            
            $this->isRegistered = true;
        }
        
        return $this;
    }