例如,我在 C# 中遇到了一个特定的异常 - “底层连接已关闭:接收时发生意外错误。”
如何确保仅在出现此异常时才会执行特定的更正任务例程?我一直在通过将错误消息与预定义的字符串进行比较来使用变通方法。例如-
catch(Exception e)
{
if(e.Message=="...")
{
//correction routine
}
}
但是,这似乎不是常规方式。任何指南将不胜感激。谢谢。
最佳答案
这是 C# 6.0 之前的传统方式(除了可能捕获更具体的异常类型)。在 C# 6.0 中,您可以添加异常过滤器:
catch (Exception ex) if (ex.Message.Contains("The underlying connection was closed"))
{
//correction routine
}
但是,可能有比检查消息更安全的方法。查看 ErrorCode
并查看您是否无法对其进行过滤(因为它不受文化影响)。
catch (Exception ex) if (ex.ErrorCode == 1234)
{
//correction routine
}
关于c# - 如何对 C# 中的特定异常采取行动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31433090/