我是 Resharper 的新手,我试图理解为什么它似乎暗示:
catch (Exception) { }
for
catch { }
和
catch { }
for
catch (Exception) { }
我很困惑。
基本上,它为您提供了一种在两种选择之间切换的方式,而不是提出哪个更好的具体建议。
您可以更改 ReSharper / 选项 / 代码检查 / 检查严重性下提供的内容 - 找到相关选项并更改无、提示、建议、警告或错误之间的优先级。
Resharper 确实有另一条信息更像是一个建议:它建议你不要去Exception
上课。
catch { }
<-- 抑制所有错误。我们应该这样做,只有当我们确定丢弃任何错误时。
catch { throw; }
<-- 这不是必需的。编译器已经注意将错误重新抛出给调用函数。不需要显式添加。
它只是为您提供了可供考虑的替代方案,这可能会激发您对改进代码的一些见解。如果没有意义,请忽略该建议。
因为有时在整理 catch 块时,您会移动到/从catch(Exception ex)
到catch(Exception)
到catch
,反之亦然,这取决于您是尝试纯粹过滤、记录/包装还是吞下异常。(看到我为 CodeRush 请求相同的功能,却不知道它甚至存在于 R# 中)
IIRC 从它们生成的代码/它们过滤和遗漏的东西的角度来看,两者之间也可能存在差异
编辑:该链接以前被标记为“空捕获是坏的”,因此非常正确的反对票!