繁体   English   中英

Resharper 和 C# 捕获条款

[英]Resharper and the C# Catch Clause

我是 Resharper 的新手,我试图理解为什么它似乎暗示:
catch (Exception) { }
for
catch { }

catch { }
for
catch (Exception) { }

我很困惑。

基本上,它为您提供了一种在两种选择之间切换的方式,而不是给出哪个更好的具体建议。

您可以更改 ReSharper / 选项 / 代码检查 / 检查严重性下提供的内容 - 找到相关选项并更改无、提示、建议、警告或错误之间的优先级。

Resharper 确实有另一条消息更像是建议:它建议您不要捕获Exception class。

catch { } <-- 抑制所有错误。 我们应该这样做,只有当我们确定丢弃任何错误时。

catch { throw; } catch { throw; } <-- 这不是必需的。 编译器已经注意重新抛出错误以调用 function。 不需要显式添加。

它只是为您提供了可供考虑的替代方案,这可能会激发您对改进代码的一些见解。 如果没有意义,请忽略该建议。

因为有时在整理 catch 块时,您会在catch catch(Exception ex)catch(Exception)之间移动,反之亦然,这取决于您是尝试纯粹过滤、记录/包装还是吞下异常。 (看到我为 CodeRush 请求相同的功能,却不知道它甚至存在于 R# 中

IIRC 从它们生成的代码/它们过滤和遗漏的东西的角度来看,两者之间也可能存在差异

编辑:该链接以前被标记为“空捕获是坏的”,因此非常正确的反对票!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM