デスクトップアプリケーションを開発しました。ほぼ完了しましたが、まだいくつかのバグが含まれているため、削除しています。
アプリケーションをラップした一般的な[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(デバッグモード)でアプリケーションを実行すると正常に動作しますが、アプリケーションを展開してPCにインストールすると、動作しません。これは、バグ(ちなみに、すでに特定済みです)の場合に発生します。 )null配列から読み取るようにします

なんで?それは本当に私を困惑させます。なぜ「未処理」だったのですか?try ... catchは、リリースモードかデバッグモードかに関係なく機能するはずだというのが私の理解でした。そうでなければ、何がポイントになるのでしょうか。