安全处理异常时,避免出现第一次机会异常消息

以下代码捕获EOS异常


using (var reader = new BinaryReader(httpRequestBodyStream)) {


    try {

        while (true) {

            bodyByteList.Add(reader.ReadByte());

        }

    } catch (EndOfStreamException) { }

}

那么,为什么我的控制台中仍然会出现首次机会异常?


mscorlib.dll中发生类型为'System.IO.EndOfStreamException'的第一次机会异常


有没有办法隐藏这些第一次机会异常消息?


qq_遁去的一_1
浏览 633回答 3
3回答

隔江千里

“第一个机会”异常的要点是您看到它们是预处理程序,因此您可以在调试时在抛出时停止它们。“第二次机会”异常是没有适当处理程序的异常。有时您想捕获“优先机会”异常,因为重要的是要观察抛出异常时发生的情况,即使有人正在捕获它。没什么可担心的。这是正常现象。

慕莱坞森

为避免看到消息,请右键单击输出窗口,然后取消选中“异常消息”。但是,如果您想知道何时在不设置断点和重新配置调试器的情况下引发异常,那么看到它们的发生可能会很好。

绝地无双

1)在Visual Studio中,您可以更改调试器处理(中断)异常的方式的设置。转到调试>异常。(请注意,根据您的Visual Studio环境设置,此菜单可能不在菜单中。如果不是,请使用“自定义”菜单将其添加到菜单中。)在那里,您会看到一个对话框,讨论异常以及何时中断它们。在“公共语言运行时异常”行中,您可以取消选择抛出(这将使您不再为第一次机会异常而烦恼),并且如果需要,还可以取消选择用户未处理的(我不建议这样做)。2)您收到的消息不应在控制台中,而应出现在Visual Studio的“输出”窗口中。如果是后者,那么我还没有找到删除它的可能,但是如果您在没有Visual Studio的情况下运行该应用程序,则不会出现。希望能有所帮助。
打开App,查看更多内容
随时随地看视频慕课网APP