如何在C#中抑制方法调用的错误?

Est*_*aya 5 c# error-handling

我正在寻找一种"优雅"的方法来在调用方法时抑制异常.

我认为以下代码过于冗长:

try
{ CallToMethodThatMayFail(3); }
catch {}
Run Code Online (Sandbox Code Playgroud)

是否有一些语法糖可以用来说"我真的不在乎这种方法是否失败"?我想调用该方法并继续执行,无论该方法发生什么.

Mar*_*ell 10

忽略/吞下错误很少是个好主意......

为了允许重复使用,您拥有的唯一选择就是采用以下方法Action:

 static void IgnoreErrors(Action action) {try {action();} catch {}}
Run Code Online (Sandbox Code Playgroud)

但是,当你完成时,你并没有完全节省下来:

SomeHelper.IgnoreErrors(() => CallToMethodThatMayFail(3));
Run Code Online (Sandbox Code Playgroud)

我刚离开try/ catch到位......


重新评论中的问题:

static void IgnoreErrors<T>(Action action) where T : Exception
{
    try { action(); } catch (T) {}
}

SomeHelper.IgnoreErrors<ParseException>(() => CallToMethodThatMayFail(3));
Run Code Online (Sandbox Code Playgroud)

但我仍然会发现try/ catch本地更清楚......


nos*_*nos 5

不,这就是它.

这是一件好事,它很冗长.如果你压制可能的异常,你最好有充分的理由.详细程度将帮助您或下一个在几个月内查看代码的人.