哇,我刚从外包开发人员那里拿回了一个C#的大项目,在进行我的代码审查时,我的分析工具揭示了它被认为是坏东西的一堆.其中一个令人沮丧的消息是:
Exceptions.DontSwallowErrorsCatchingNonspecificExceptionsRule : 2106 defects
Run Code Online (Sandbox Code Playgroud)
开发人员向我保证他们有充分的理由使用所有空的catch块,有时候使用空catch块的尝试只是忽略无用的异常并使应用程序不会崩溃.我觉得这是一个警察和完整的BS.我实际查找的一些示例是数据库调用,其中记录被保存到数据库,在这种情况下,如果忽略异常,用户将返回一个正常的提示,认为一切正常,并继续他们的工作.实际上,他们的工作从未得到保存.我认为这绝对是最可怕的错误.在这种情况下,在使用空catch块的try中抛出该代码是完全错误的.但我的问题是,"这种情况在任何情况下都可以接受吗?" 我想不是,但我知道错了.
我在C#代码中有一个函数,其中定期抛出NullReferenceException(预期行为),但是被捕获.有没有办法告诉Visual Studio调试器不要在我的代码的这个特定部分中断这个异常?
编辑我需要在我的代码中的其他地方打破这个异常,但不是在同一个函数中.
我目前正在使用一个库,当获取某些内容的请求失败时,该库会抛出(并处理)大约 5 个异常。通常这不是问题,因为预计这可能会发生,但问题是 Visual Studio 无论如何都会记录这些异常。
有没有办法禁止 Visual Studio 将捕获的异常输出到调试控制台?我仍然希望记录所有其他会导致中断的异常。