尝试捕获块内部未捕获到“未处理”异常

时间:2020-06-26 13:03:19

标签: c# visual-studio try-catch objectdisposedexception

我正在尝试运行将持续大量时间的异步输出,然后在执行期间关闭应用程序,这将导致文本框被丢弃。我以为可以通过简单地返回try-catch语句来解决此问题,但是VS仍然说存在“未处理”异常。这是代码:

public void AppendOutput(string text)
    {
        var timeNow = DateTime.Now;

        if ((DateTime.Now - previousTime).Milliseconds <= 50) return;
        try
        {
            synchronizationContext.Post(new SendOrPostCallback(o =>
            {
                Output.AppendText((string)o);
            }), text);
        }
        catch(ObjectDisposedException e)
        {
            return;
        }

        previousTime = timeNow;
    }

这是调试中发生的事情: What happens in debug

我有理由将其视为未处理?我以为那就是try-catch的目的。我的理解是,我可以简单地返回,因为对于试图写入已处理的文本框的程序,无需处理异常。程序应自行结束线程。 解决此问题的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

根据您的描述,您要解决调试期间发生的异常问题。

您可以在初始化组件函数中添加以下代码,如下所示:

csc /t:library /r:System.Web.dll CustomHandler.cs

结果: enter image description here