Sonarqube 6.7(sonar-csharp-plugin-7.0)是否有C#通用异常捕获检查规则?
关于SonarQube 6.7 + sonar-csharp-plugin-7.0捕获通用异常的规则确认
我刚好对这个版本的SonarQube C#插件比较熟悉,你要找的规则是存在的,大概率是你没在质量配置里找到或者它默认没启用。
- 对应的规则ID是
S112,规则名称为 "Generic exceptions should not be caught"(不应捕获通用异常),它的核心逻辑就是检查代码中是否直接捕获了System.Exception、System.SystemException这类过于宽泛的异常类型,和你提到的旧版本规则功能完全等效。 - 你可以这样找到它:登录SonarQube后台,进入「Quality Profiles」(质量配置)页面,选中你正在使用的C#质量配置,然后在规则搜索框里输入规则ID
S112或者关键词「Generic exceptions」,就能定位到这个规则。 - 为什么可能看不到?因为部分默认的质量配置会将这个规则设为禁用状态,你只需要勾选启用它,然后保存配置,后续的代码扫描就会执行这个检查了。
这个规则属于SonarC#的核心规则范畴,确实是基础的代码质量检查项,主要是为了避免捕获通用异常导致真正的错误被掩盖,不利于问题排查和代码维护。
内容的提问来源于stack exchange,提问作者Coc
相关产品推荐
相关产品推荐

