当我在 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/