protected function triggerError(Exception $exception, $label)
    {
        $this->unhandle();
        $this->last_error = $exception;
        
        if ($exception instanceof Exceptions\PHPErrorException) {
            $type = Errors::toString($exception->getCode());
        } else {
            $code = $exception->getCode();
            $type = get_class($exception);
            $type = "{$type}[{$code}]";
        }
        $this->logger->error(
            '{label} {type}: "{message}" in file {file}[{line}].',
            [
                "label"   => $label,
                "type"    => $type,
                "message" => $exception->getMessage(),
                "file"    => $exception->getFile(),
                "line"    => $exception->getLine()
            ]
        );
        
        try {
            call_user_func($this->getCallback(), $this);
        } catch (Exception $e) {}
        
        return true;
    }