c# - 如何对 C# 中的特定异常采取行动?

标签 c# exception

例如,我在 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/

相关文章:

c# - 如何找到空字节数组

c++ - 保证某个函数在销毁前被调用

java - 如何修复此 "OutOfBoundaryException"错误?

delphi - 如何从包含 D2007 的异常 block 中使用 Halt(n) 返回错误代码?

c# - 实体 VS 域模型 VS View 模型

c# - Java中静态{...}的c#等价物是什么?

c# - C# 中的简单 3D 图形

java - 子类调用父类递归java

spring - 使用 Spring Boot 处理 MultipartException 并显示错误页面

c# - 将数组传递给 C# 中的方法