c# - 看不到消息框

标签 c# .net winforms exception messagebox

当我在 bin debug 文件夹中执行 exefine 来运行程序时,为什么看不到包含异常详细信息的 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);
}

最佳答案

添加这一行:

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

显然调试时默认值是不同的。我不知 Prop 体情况。

另请注意,您的 if(...) Application.Exit(); 在这里并不真正有用,也不应该如此。
不要尝试重新启动或任何其他操作。

关于c# - 看不到消息框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3734531/

相关文章:

c# - 如何在 .NET 中引用特定的基类方法?

c# - 在文本框中查看整个文件

c# - 如何读取子项目中appsettings文件的内容

c# - 更改设置文件的位置

c# 运算符 !不能申请

C# SQL 注入(inject)

c# - 用于存储在 SQL DB 中的信用卡加密

c# - Windows Phone 7 XNA 项目 - 更新到 Windows Phone 8?

c# - 如何使用 File.Copy C# 方法通过局域网复制文件?

c# - 当程序在弱计算机上运行时,进度条不会更新