2013-01-17 71 views
4

可能重复:
Ignore Exception in C#C#的最佳办法忽略例外

有时在罕见的情况下,你真的想忽略例外。做这个的最好方式是什么?我的方法是赶上例外,但不做任何事情。其他?

     try 
         { 
          blah 
         } 
         catch (Exception e) 
         { 
          <nothing here> 
         } 
+3

希望,你只是想忽略一个或几个特定的​​例外。忽略所有异常并不是一个好主意。 –

+0

不例外。只是您想要忽略的特定例外的类型 –

+1

我同意@BrianRasmussen。当你忽略例外情况时,请添加注释,解释为什么你忽略它。 –

回答

13

如果你要正好赶上,不处理异常,而忽视它,你可以简化你有什么咯。上述

try 
{ 
    // code 
} 
catch 
{ } 

为任何异常,如果你只是想忽略特定例外,但让别人泡出来的,你可以,如果你忽略了这样的例外做到这一点

try 
{ 
    // code 
} 
catch (SpecificException) 
{ } 

,它是最好在catch块中包含一些评论,说明为什么你忽略了这种异常。

+0

作为一个经验丰富的开发人员,我发现这是在寻求麻烦。最终可能会出现一些不会一直发生的异常,因为沿线的某处不可重现,IGNORED是个例外。我想如果你不打算专门处理一个例外,那么你不应该接受它。调用方法可以捕获异常并决定要做什么。异常会传递到堆栈中。您可以重新抛出异常并添加一些注释,如“无法通过网络发送,+”ex.message ..以及调用函数可以捕获这个问题 –

+0

有几种情况,您会吃(忽略)例外。例如,你不希望你的日志框架抛出异常,阻止你的业务功能正常工作。基本上,你不希望你的主要任务失败,只是因为在可选的非必要代码中可能存在问题。 – NoOneSpecial

3
try 
{ 
    DoBlah(); 
} 
catch { } 
+2

我将添加 - 在空的catch块中添加注释以解释*为什么*您忽略了异常。 –

+0

MS不鼓励MS最佳实践。 –

+1

@Zarathos - 问题不在于'最佳实践',而是关于吞咽异常。 – Lee

3

这可能是这样的

try 
{ 
    //blah 
} 
catch{} 

如果你想忽略一个特定的异常

try 
{ 
    //blah 
}catch(YourException){} 
+1

这不会忽略异常。它会忽略所有的例外。 –