我具有以下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
}

09-27 06:16