【发布时间】:2015-09-10 15:18:39
【问题描述】:
我从this 和this 等许多来源了解到,如果在Using 块中引发异常,将始终调用IDisposable 的Dispose 方法。所以我有这个代码:
static class MainEntryPoint
{
static void Main(string[] args)
{
AppDomain.CurrentDomain.UnhandledException += HandleUnhandledException;
using (var x = new Disposable())
{
throw new Exception("asdfsdf");
}
}
private static void HandleUnhandledException(Object sender, System.UnhandledExceptionEventArgs e)
{
Environment.Exit(0);
}
}
class Disposable : IDisposable
{
public void Dispose()
{
System.Diagnostics.Debug.Print("I am disposed");
}
}
当抛出未处理的异常时,它会退出应用程序。 Dispose 方法永远不会被调用。为什么?
【问题讨论】:
标签: c# .net exception idisposable using-statement