【发布时间】:2012-01-22 15:35:34
【问题描述】:
我有以下代码。我将它包含在一个 try 块中并“尝试”以捕获异常:
try
{
var response = query.Execute() as QueryOperationResponse;
}
catch (System.Net.WebException s)
{
var se = e;
se = se + "aa";
}
catch (Exception e)
{
var a = e;
a = a + "ab";
}
当 query.Execute 行执行时,它会产生异常,VS2010 在以 catch 开头的行上停止(System.Net 并给出以下内容:
System.Data.Services.Client.DataServiceQueryException was unhandled by user code
Message=An error occurred while processing this request.
Source=System.Data.Services.Client
StackTrace:
at System.Data.Services.Client.DataServiceRequest.Execute[TElement](DataServiceContext context, QueryComponents queryComponents)
at System.Data.Services.Client.DataServiceQuery`1.Execute()
当我单步执行时,我希望它转到代码“var se = 2;”或“var a = e”。但是,当我使用 F11 单步执行时,下一行是完全跳出该代码块/方法。
为什么异常没有落入其中一个捕获桶?我完全糊涂了。
【问题讨论】:
-
您在第二个 catch 块中重新抛出异常。
-
这是开启优化了吗?无论如何,代码注定要转到
throw;。 -
这里的代码只是测试代码。我期待并试图测试它是否会被捕获。我怎样才能测试出来,但仍然不确定为什么它不去那里。
标签: c# .net exception exception-handling try-catch