异常后自动继续

时间:2016-06-23 13:26:52

标签: c# exception

所以我正在编写一个学术软件,我需要通过在线链接从8个设备的网络中获取数据。请注意,此设备的配置方式有时会返回no或null数据。我需要长时间收集这些数据。这是代码:

public static void ParseJsonStatic(string link, ...9)
{
    /access the URLs in a suitable interval and process data
    var client = new WebClient();
    var stream = client.OpenRead(link);
    Debug.Assert(stream != null, "stream != null");
    var reader = new StreamReader(stream);
    var rootObject = JsonConvert.DeserializeObject<RootObject>(reader.ReadToEnd());

    ....
}

因此,只要有null stream,Visual Studio就会暂停并向我显示异常气泡,我将不得不单击此继续按钮。

enter image description here

有没有办法处理这个问题,并确保我的代码在发生这种情况时继续从开始运行。所以我想要的是:

while (stream == null) { ... retry to read stream and don't trigger nullPointerException... }

因为在中间停顿会导致基于特定间隔的数据收集目的失败,而且我也不能长时间无人看管。

感谢。

3 个答案:

答案 0 :(得分:3)

试试这个:

var stream = null;
while (stream == null) {
    stream = client.OpenRead(link)
}

也许在阅读之间你也想等一段时间。

答案 1 :(得分:2)

在Visual Studio中:Ctrl + Alt + E或Debug&gt;异常。

这将打开一个窗口,您可以在其中选择哪些预览将导致调试器中断。

您感兴趣的人可能会受到#34; Common Language Runtime Exceptions&#34;

请注意,任何导致应用崩溃的未处理异常仍会导致调试失败。您需要确保使用Try / Catch处理异常。

答案 2 :(得分:0)

转到“调试”菜单,然后转到“例外”

要访问此窗口,请转到“调试”菜单并选择“Windows” - &gt;例外设置。

  

选择添加并输入您的例外。这将添加一个复选框项   为你的例外。

如果抛出该复选框,则无论何时抛出异常,调试器都会暂停。 在您的情况下,必须取消选中此复选框。

有关详细信息,请参阅msdn上的link