NullReferenceException抛出StackOverflowException

时间:2012-12-10 10:25:17

标签: c#-4.0 exception

我遇到一个案例,其中应用程序正在抛出NullReferenceException,关闭我的应用程序抛出StackOverflowException

第一个例外是合乎逻辑的,我理解它。它不是由用户处理的,我希望转到AppDomain.CurrentDomain.UnhandledException

但是不行,StackOverflowExceptionNullReferenceException之后立即被解雇,我的应用程序关闭了。

我不明白StackOverflowException的原因,因为此时调用堆栈的最大堆栈并不大(~15行)。

情况的特殊性在于我在一个委托中,该委托订阅了控件的VisibleChanged事件处理程序。

以下是重现问题的示例。

   public Form1()
    {
        InitializeComponent();
        VisibleChanged += Function();
    }

    private EventHandler Function()
    {
        throw new NullReferenceException();

    }

事实上,当我在做样本时,我想我得到了这个问题。在Visible Changed事件中抛出异常似乎改变了可见性,并且有一个递归调用(我奇怪地看不到)谁涉及到stackoverflow ..但我不明白为什么我看不到它。

0 个答案:

没有答案
相关问题