看不到MessageBox

时间:2010-09-17 10:28:23

标签: c# .net winforms exception-handling messagebox

当我通过在bin调试文件夹中执行exe fine来运行我的程序时,为什么看不到带有异常详细信息的MessageBox?

当我从Visual Studio调试(运行)程序时,我确实看到了异常。

[STAThread]
static void Main()
{
    try
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
    catch (Exception ex)
    {
        if (MessageBox.Show(
            string.Format("There were unhandeled exceptions. Would you like to continue using this program?"),
            "Fatal Error",
            MessageBoxButtons.YesNo,
            MessageBoxIcon.Error) == System.Windows.Forms.DialogResult.No)
                Application.Exit();
    }
}

修改
以下是生成异常的代码:

private void button1_Click(object sender, EventArgs e) {
    int num = 1;
    num = num / (num - num);
}

1 个答案:

答案 0 :(得分:3)

添加以下行:

try 
{
    Application.SetUnhandledExceptionMode(UnhandledExceptionMode.ThrowException);
    ...

显然调试时默认值不同。我不知道有关的细节。

另请注意,您的if(...) Application.Exit();在这里并不实用,也不应该 不要尝试重启或任何东西。