异常处理c#并不像我预期的那样 - 为什么?

Dal*_*ale 4 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);
}
Run Code Online (Sandbox Code Playgroud)

当我在发布中运行此代码并将大量数据推送到服务时,VS2010在带有TimeoutException的"writeDataToChannel"行上停止.不应该我的catch块捕获异常并在超时发生时打印它吗?

"writeDataToChannel"代码是从WSDL生成的,写入总是有效,直到我将大量数据推送到Web服务,所以我认为我的请求没有问题.

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

dso*_*ano 7

听起来像是你让Visual Studio设置为停止抛出异常.转到菜单项Debug->Exceptions,查看您的CLR例外设置.要获得您正在描述的行为,您不希望停止捕获或未捕获的异常.

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


vc *_* 74 5

您可能需要告诉VS不要在异常对话框中中断每个抛出的异常(ctrl + alt + e并取消选中CLR异常)