public static function forType(
        string $type,
        int $code = self::CODE_FOR_TYPE,
        Throwable $previous = null
    ): self {
        $message = self::DEFAULT_MESSAGE . sprintf(self::MESSAGE_EXTENSION_FOR_TYPE, $type);

        return new static($message, $code, $previous);
    }