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