我具有以下try-catch
语句,并且如果message属性的文本中包含“我的错误”,我也不想抛出异常。
如何以编程方式完成此任务?另外,这会被视为代码气味吗?
try
{
}
catch(Exception e)
{
if(e.Messages.Contains("My error"))
{
//want to display a friendly message and suppress the exception
}
else
{
throw e;
}
}
最佳答案
您应该捕获正在寻找的特定异常。坦率地说,该代码令人震惊。你应该有类似...
public class MyCoolException : Exception {
public MyCoolException(string msg) : base(msg) {}
}
public void MyCoolMethod() {
// if bad things happen
throw new MyCoolException("You did something wrong!");
}
然后稍后在您的代码中,您可以像使用...
try {
MyCoolMethod();
} catch (MyCoolException e) {
// do some stuff
}