【发布时间】:2011-04-13 16:01:56
【问题描述】:
为什么我通过在bin调试文件夹中执行exe正常运行程序时看不到带有异常详细信息的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);
}
【问题讨论】:
-
奇怪,当我测试这个时,我确实看到了消息框......
-
“有未处理的异常。是/否?”如果我看到一个,即将每天的 WTF...
-
即使您回答“否”,程序也会在您的示例中退出。你想达到什么目的?如果您想处理未处理的异常并且不一定要退出程序,还有其他方法可以做到这一点。此外,是否从线程(BackgroundWorker、BeginInvoke、Thread、Task 等)抛出异常?
-
@Joachim 您是否尝试在调用 Application.Run 之前抛出异常?
-
能否贴出引发异常的代码,以及如何调用该代码?
标签: c# .net winforms exception-handling messagebox