【问题标题】:How to comment why a catch can be ignored如何评论为什么可以忽略捕获
【发布时间】:2021-05-31 16:50:27
【问题描述】:

我在 Sonar 上收到一条消息:处理异常或在评论中解释为什么可以忽略它。我如何通过提供解释忽略此的评论来消除此警告?

I am using C# for coding and my catch block  is catch {} 

Catch
{
 // handled globally
}
finally
{
 connection.Close()
}

捕获代码并在 finally 块上我添加了一些代码来关闭连接

【问题讨论】:

  • 您是否尝试在 catch 内部或上方添加评论,看看是否有任何一个可以抑制消息?如果是这样,请输入您尝试过的内容(始终在 SO 问题中执行此操作,因此人们不会建议您做您已经尝试过的事情),如果不是..也许尝试一下,看看它是否会阻止您发布问题:)
  • 在 Visual Studio 中,您可以在捕获行上按 Ctrl+ .。在上下文菜单中,您可以选择隐藏此行、文件或项目的警告。
  • @oliver 虽然这似乎是一个合理的警告,但这并不意味着构建过程的某些部分稍后会在其他地方成功(也许他们有警告作为构建服务器上活动的错误,也许是家规是不是修改代码分析规则集等)
  • @CaiusJard 用我现在所做的更新了问题
  • 我会仔细查看connection 是什么,看看它是否实现了IDisposable。总是更喜欢使用using 语句而不是通过try/finally 手动重新实现它们。如果它是你自己的类并且当前没有实现IDisposable,那么这也是推荐的方法。

标签: c# sonarqube


【解决方案1】:

该异常不会在全局范围内处理,它会被丢弃。您应该使用以下模式:

try{
  //code
}
finally {
  //close connection
}

这消除了来自 Sonar 的警告并使您的明显意图成为真实(全局处理程序将处理异常),否则您只会默默地丢失此代码抛出的每个错误,这将导致您的帮助台团队无休止欢乐

出于这个原因,我拒绝回答上述问题,但如果您非常想走这条路,您寻求的答案在 Sonar 的精美手册中;它咬你

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-06
    • 2011-03-26
    • 2013-01-04
    相关资源
    最近更新 更多