如何评论为啥可以忽略捕获

Posted

技术标签:

【中文标题】如何评论为啥可以忽略捕获【英文标题】: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,那么这也是推荐的方法。 【参考方案1】:

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

try
  //code

finally 
  //close connection

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

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

【讨论】:

以上是关于如何评论为啥可以忽略捕获的主要内容,如果未能解决你的问题,请参考以下文章

如何捕获和忽略 org.apache.catalina.connector.ClientAbortException

为啥在异步事件循环运行时我无法捕获 SIGINT?

ESLint:我如何告诉eslint忽略coldfusion评论

hibernate oracle 中查询Date类型,忽略了时分秒 为啥?如何解决?

从文本字段捕获数据时如何忽略自动完成值?

使用 ANTLR 捕获(并保留)所有评论