Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# winforms未处理异常对话框上的继续按钮行为_C#_.net_Winforms - Fatal编程技术网

C# winforms未处理异常对话框上的继续按钮行为

C# winforms未处理异常对话框上的继续按钮行为,c#,.net,winforms,C#,.net,Winforms,在winforms中,如果遇到未处理的异常,将弹出一个对话框,提醒您发生异常。它具有继续执行或退出应用程序的按钮。我想知道的是,如果您选择continue按钮,应用程序将从什么状态继续运行。我的直觉是,它像在调试器中一样运行,在异常之后继续执行下一条语句,但情况似乎并非如此。为了演示这一点,我制作了一个winforms应用程序,其中包含一个TextBoxtextBox1和一个按钮button1,具有以下功能: public partial class Form1 : Form { pub

在winforms中,如果遇到未处理的异常,将弹出一个对话框,提醒您发生异常。它具有继续执行或退出应用程序的按钮。我想知道的是,如果您选择continue按钮,应用程序将从什么状态继续运行。我的直觉是,它像在调试器中一样运行,在异常之后继续执行下一条语句,但情况似乎并非如此。为了演示这一点,我制作了一个winforms应用程序,其中包含一个TextBox
textBox1
和一个按钮
button1
,具有以下功能:

public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();
    }
    private void button1_Click(object Sender, EventArgs e) {
        textBox1.Text = "Line before exception";
        throw_Exception();
        textBox1.Text = "Line after exception";
    }
    private void throw_Exception() => throw new Exception();
}
这样您会看到“异常之前的行”,然后是异常对话框(yay),但即使您点击continue,也不会到达“异常之后的行”。显然,这是一个愚蠢的例子,但我仍然不清楚“继续”按钮实际上在做什么。如果异常是在大型层次结构的底部引发的,那么UI级别的所有操作的执行是否都停止了?垃圾收集是否在异常之前创建的任何对象上运行?如果在多线程程序的一个线程上引发异常,该怎么办


免责声明:是的,我知道不应该有未处理的异常,我当然不应该抛出一个通用的
系统。异常。我只是问在引擎盖下继续操作是如何工作的,以及如果按下继续按钮,如何确定系统处于何种状态。

我刚刚尝试了这个
int a=1;int b=0;INTC=a/b;int x=0异常继续id未运行
int x=0行此对话框仅显示在UI线程上运行的代码,选择“继续”会使应用程序将控制权交还给操作系统。因此,代码的其余部分不会像处理完
按钮一样运行。单击
-“继续”只意味着应用程序不会退出,它将再次响应下一个事件。也可以看到这个答案:@C.Evenhuis谢谢,这很有帮助;int b=0;INTC=a/b;int x=0异常继续id未运行
int x=0行此对话框仅显示在UI线程上运行的代码,选择“继续”会使应用程序将控制权交还给操作系统。因此,代码的其余部分不会像处理完
按钮一样运行。单击
-“继续”只意味着应用程序不会退出,它将再次响应下一个事件。也可以看到这个答案:@C.Evenhuis谢谢,这很有帮助。