【发布时间】:2017-07-14 08:56:37
【问题描述】:
我有以下方法,其中包括一开始的验证检查。我正在使用NLog,我想记录异常消息并“同时”抛出异常,尽可能避免代码膨胀。
目前,我执行以下操作,但似乎有点笨重。有没有更好的办法?
public static void ValidateValue(string value)
{
if (!string.IsNullOrWhiteSpace(value) && value.Contains(","))
{
ArgumentException ex = new ArgumentException(string.Format("value cannot contain ',': {0}", value));
Logger.Error(ex);
throw ex;
}
}
我正在寻找的更多是
public static void ValidateValue(string value)
{
if (!string.IsNullOrWhiteSpace(value) && value.Contains(","))
throw Logger.Error<ArgumentException>("value cannot contain ',': {0}", value);
}
Logger.Error<> 方法在记录消息后返回 ArgumentException。
这似乎很有用,而且很可能已经存在,但也许我必须推出自己的扩展方法?
谢谢!
【问题讨论】:
-
如果你想使用泛型,你必须使用反射来创建异常对象,可能更容易手动传入一个新的异常对象。
标签: c# .net exception-handling nlog