C#:找到所有空的catch块

Shi*_*iji 19 c# visual-studio

我正在审查一些代码.

我注意到一些空的挡块.不是一个好主意,因为有些东西不起作用,你不明白为什么.

有没有一种简单的方法可以在解决方案中找到所有空的try catch块?

Ste*_*fan 25

使用全局查找对话框,打开正则表达式,然后搜索:

catch:b*\([^)]*\):b*\{:b*\}
Run Code Online (Sandbox Code Playgroud)

  • 上面的答案对我不起作用,但这确实"捕获(\(.*异常.*\))*:Wh*\{:Wh*\}"没有引号. (4认同)

Sve*_*son 12

进一步扩展了上面的三个解决方案,包括子句,其中大括号与catch不在同一行,catch子句只包含单行引号:

^(?!\/\/|\/\*).*catch\s*(?:\([^)]*\))*\s*\{\s*(?:(?:\/\/|\/\*).*(\*\/)?\s*)*\}
Run Code Online (Sandbox Code Playgroud)


jru*_*ell 7

FxCop会发现它们以及许多其他潜在问题.

  • 你能说出捕获空捕获块的规则吗? (2认同)

Adr*_*der 6

你有ReSharper吗?这应该是代码中发现的问题.