异常处理

问题描述:

C#中有没有办法捕获任何类型的异常? 像C++来捕捉任何类型的异常 格式就像是异常处理

try{ 
//Statements 
} 
catch(...){ 
// Some more statements 
} 

但这种格式在C#中失败。 帮助?

+1

考虑**为什么**你想捕捉任何异常。记录和重新抛出是一个有效的用例。但是,你真的可以编写代码来处理**任何可能的错误**,并允许程序继续处于已知状态吗? – TrueWill 2009-11-22 19:20:56

+0

实际上,我在我的应用程序的根目录中使用了open catch,这样如果发生未捕获的异常,我可以重新启动它。这对于服务等非常有用。 – 2009-11-22 19:48:03

你可以赶上像什么:因为每个异常(甚至在Windows SEH除外)保证是

catch(Exception ex) {} 

catch {} 

从.NET 2和进一步,这相当于衍生自System.Exception

try { 
    // Statements 
} catch (Exception ex) { 
    // Do stuff with ex 
} 

这应该有效。

检查this链接。这都是关于例外。

你所要做的是使用parameter-less catch这样的:

try { 
    // your code 
} catch { 
    // any exception 
} 

赶上(异常前)

或挂钩()< - 我相信,第二个工作

.NET框架提供了一种检测/处理运行时错误的机制。 C#在异常处理中使用三个关键字:try,catch,finallytry块包含可能导致异常的语句。 catch块处理异常,finally块用于清理。

try 
{ 
//statements that can cause an exception 
} 
catch(Type x) 
{ 
//statements for handling an exception 
} 
finally 
{ 
//cleanup code 
}