我开发了一个桌面应用程序,它几乎完成了,但仍然包含一些我正在消除的错误。
我在我的应用程序周围使用了一个通用的 [try...catch] 块
[STAThread]
static void Main()
{
try
{
program = new Program();
// ...
}
catch (Exception x)
{
// ...
MessageBox.Show(
message,
Resources.MESSAGEBOX_ERROR_CRASH_Caption,
MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
我的 Program 类构造函数是:
public Program()
{
// [...]
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// [...]
frmLogon = new Logon();
Application.Run(frmLogon);
}
以确保任何未处理的异常都会在堆栈中一直冒泡,并且至少会以一些可通信的消息框进行响应。
当我在 Visual Studio(调试模式)下运行应用程序时它工作正常,但是当我将它部署并安装在我的 PC 上时,它没有 - 这就是我得到的错误(顺便说一下,我已经确定) ) 导致它从一个空数组中读取
为什么?这真的让我很困惑。为什么它“未处理”?我的理解是,无论是发布模式还是调试模式,try...catch都应该工作,否则有什么意义。