Я разработал настольное приложение, оно почти готово, но все еще содержит некоторые ошибки, которые я устраняю.
Я использую общий блок [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);
}
}
Мой конструктор класса Программы:
public Program()
{
// [...]
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// [...]
frmLogon = new Logon();
Application.Run(frmLogon);
}
, чтобы гарантировать, что любое необработанное исключение будет пузыриться по всему стеку и, по крайней мере, получит ответ с помощью какого-нибудь окна сообщения.* Это прекрасно работает, когда я запускаю приложение в Visual Studio (режим отладки), но когда я развернул его и установил на своем компьютере, это не так - вот что я получаю, когда ошибка (которую я уже определил,способ) заставляет его читать из нулевого массива
Почему?Это действительно сбивает меня с толку.Почему это было "необработанным"?Насколько я понимаю, try ... catch должен работать независимо от того, является ли это выпуском или режимом отладки, иначе какой бы смысл.