Исключение в статическом конструкторе

Я искал ответ на этот вопрос в SO, и лучший из них, который я смог найти, это здесь , однако он ориентирован на экземпляры со статическими конструкторами; Я использую класс только статически.

Мой код:

public static class MailHelper {

    private static string mailHost;

    static MailHelper() {

        var mailSettings = ConfigurationManager.GetSection("MailSettings") as NameValueCollection;
        if (null == mailSettings) {
            throw new ConfigurationErrorsException("Missing Mail Settings in the configuration file");
        }

        mailHost = ConfigurationManager.AppSettings["mailHost"];
        if (null == mailHost) {
            throw new ConfigurationErrorsException("Missing mailHost setting in the configuration file");
        }

    }

    public static void SendMail(MailMessage Message) {
        ...
    }

}


try {
    MailHelper.SendMail(Message);
}
catch (ConfigurationErrorsException exc) {
    ...
}

//  ???    
MailHelper.SendMail(Message);


.

Итак, если статический конструктор выдает исключение при первом вызове, что произойдет, когда я попытаюсь получить доступ к статическому методу SendMail () во второй раз?

PS: Извините, если вам не нравится версия Stroustrup стайлинга скоб K&R, но не Отредактируйте мой пост, просто чтобы изменить фигурные скобки на ваш предпочтительный стиль Allman. Спасибо.

33
задан Community 23 May 2017 в 12:26
поделиться