如何评论为啥可以忽略捕获
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
ESLint:我如何告诉eslint忽略coldfusion评论