面对SocketException的一些奇怪问题。随附的屏幕截图更多地了解它。
答案 0 :(得分:1)
执行是而不是进入第二个catch块,try-catch
显然无法正常工作,异常会被调用堆栈抛出,以下任何catch
子句都是忽略。
它只是看起来,因为你在 Release 模式下进行调试这不是一个好主意,因为IDE可能缺少重要的调试信息,因此错误地显示输入第二个catch
子句时执行停止。
请注意,在那一点停止真的没有意义,如果执行以某种方式使它成为第二个catch
子句,它将在throw
语句停止,而不是之前。
为了缩短它,真正发生的是第一个throw
上的执行停止并且IDE没有正确显示它。
故事的道德;请勿在发布模式下进行调试。如果您正在运行 VS2015 ,它实际上会警告您 Release 模式下的调试体验将会低于标准(不确定此警告是否出现在先前版本中)。
更新:似乎问题与 Release 模式下的调试无关,因为它仍然发生在 Debug 模式下。不过,关键是调试不应该在 Release 模式下完成,因为这样的时髦事情可能会发生。我会尝试清理解决方案,看看是否能解决问题。如果不是,我不会出汗,代码表现正常,只是IDE无法正确显示执行停止的地方,没什么大不了的。