c# - 异常处理 C# 的行为与我预期的不同——为什么?

标签 c# exception-handling

我有以下 C# 代码:

try
{
    response = this.writeDataToChannel(writeRequest);
    if (response.Failures != null)
    {
        Console.WriteLine(response.Failures.First().cause);
    }
}
catch (TimeoutException te)
{
     Console.Error.WriteLine(te.Message);
}

当我在发布中运行此代码并将大量数据推送到服务时,VS2010 停止在“writeDataToChannel”行并出现 TimeoutException。我的 catch block 不应该捕获异常并在超时发生时打印它吗?

“writeDataToChannel”代码是从 WSDL 生成的,在我将大量数据推送到网络服务之前,写入始终有效,所以我认为我的请求没有问题。

这不是命名空间问题,在这两种情况下都是 System.TimeoutException。

最佳答案

在我看来,您似乎已将 Visual Studio 设置为在抛出异常时停止。转到菜单项 Debug->Exceptions 并查看您的 CLR Exceptions 设置是什么。要获得您所描述的行为,您不想停止捕获或未捕获的异常。

或者,不要在调试器下运行它。

关于c# - 异常处理 C# 的行为与我预期的不同——为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8435262/

相关文章:

java - 使用 RuntimeExceptions 和 CheckedExceptions

java - 尝试/最终没有捕获和返回值

spring - 如何在 Spring DI 失败时阻止 Java EE 应用程序启动

c# - 如何从维护其组件和属性的服务器加载 Unity 中的游戏对象?

c# - 在文件系统级别同步写入文件

C#: double 到长整型转换

C# Dropdownlist OnSelectedIndexChanged 未触发

c++ - __cxa_throw 可以安全地忽略 Core Audio 吗?

c# - 调用构造函数的顺序

c# - 在保留堆栈跟踪和内部异常信息的同时抛出新异常