我已经在 SO 周围寻找答案,到目前为止我能找到的最好的是here,但是它适用于具有静态构造函数的实例;我只是静态地使用这个类。
我的代码:
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 样式。谢谢。