public static function handle($number = '', $message = '', $file = '', $line = 0, $context = [])
    {
        // If we shouldn't care we follow this rule!
        if (!($number & error_reporting())) {
            return true;
        }

        // get error type
        $type = self::getErrorType($number);

        // Pack error into an exception so that the error can be forwarded to exception handler
        $error = new Doozr_Exception($message, $number);
        $error
            ->type($type)
            ->message($message)
            ->file($file)
            ->line($line);

        // Now dispatch the error processable and from userland catchable as Exception
        throw new Doozr_Error_Exception($message, $number, $error);
    }