Jak string.Format obsługuje wartości zerowe?

W poniższym kodzie, dlaczego dwastring.Format połączenia nie zachowują się w ten sam sposób? W pierwszym nie rzuca się wyjątku, ale w drugim aArgumentNullException Jest rzucony.

static void Main(string[] args)
{
    Exception e = null;
    string msgOne = string.Format("An exception occurred: {0}", e);
    string msgTwo = string.Format("Another exception occurred: {0}", null);
}

Czy ktoś mógłby mi pomóc zrozumieć różnicę między nimi?

questionAnswers(4)

yourAnswerToTheQuestion