public function handle($errno, $errstr, $errfile, $errline) {
            self::$lastReported = new Error($errno, $errstr, $errfile, $errline);

            $this->injectCSS();
            $type = Alo::ifnull(Error::$map[$errno], $errno);
            $label = 'danger';

            switch ($errno) {
                case E_NOTICE:
                case E_USER_NOTICE:
                    $label = 'info';
                    break;
                case E_DEPRECATED:
                case E_USER_DEPRECATED:
                case E_WARNING:
                case E_USER_WARNING:
                case E_STRICT:
                case E_CORE_WARNING:
                    $label = 'warning';
            }

            $file = implode(DIRECTORY_SEPARATOR, array_slice(explode(DIRECTORY_SEPARATOR, $errfile), -2));

            if (!$errline) {
                $errline = '<<unknown>>';
            }

            if ($this->isCLI) {
                $label = $label == 'danger' ? 'e' : substr($label, 0, 1);
                $this->handleCLI($type, $label, $errno, $errstr, $file, $errline);
            } else {
                $this->handleHTML($type, $label, $errno, $errstr, $file, $errline);
            }

            $this->log($errno, $errstr, $errfile, $errline);
        }