异常处理
问题描述:
C#中有没有办法捕获任何类型的异常? 像C++来捕捉任何类型的异常 格式就像是异常处理
try{
//Statements
}
catch(...){
// Some more statements
}
但这种格式在C#中失败。 帮助?
答
你可以赶上像什么:因为每个异常(甚至在Windows SEH除外)保证是
catch(Exception ex) {}
:
catch {}
从.NET 2和进一步,这相当于衍生自System.Exception
。
答
try {
// Statements
} catch (Exception ex) {
// Do stuff with ex
}
这应该有效。
答
答
赶上(异常前)
或挂钩()< - 我相信,第二个工作
答
.NET框架提供了一种检测/处理运行时错误的机制。 C#在异常处理中使用三个关键字:try
,catch
,finally
。 try
块包含可能导致异常的语句。 catch
块处理异常,finally
块用于清理。
try
{
//statements that can cause an exception
}
catch(Type x)
{
//statements for handling an exception
}
finally
{
//cleanup code
}
考虑**为什么**你想捕捉任何异常。记录和重新抛出是一个有效的用例。但是,你真的可以编写代码来处理**任何可能的错误**,并允许程序继续处于已知状态吗? – TrueWill 2009-11-22 19:20:56
实际上,我在我的应用程序的根目录中使用了open catch,这样如果发生未捕获的异常,我可以重新启动它。这对于服务等非常有用。 – 2009-11-22 19:48:03