2017-11-13 21 views
-1

私は例外処理のための小さな助けが必要なWindowsフォームアプリケーションを作成しています。例外のフォームアプリケーションを停止する

私のアプリケーションが行うこと(概要):最初から入力を受け取ります。ユーザーがFinishボタンをクリックすると、入力が処理されます。与えられた入力に基づいて、ある計算が実行される。その後、msiexec /xコマンド(別のプロセスとして起動)を使用してアプリケーションをアンインストールします。

入力処理時(つまり、アンインストールタスクの前)に例外が発生した場合は、Application.Exit()メソッドを呼び出しています。

try 
{ 
    //some processing 
} 
catch (Exception exc) 
{ 
    DisplayErrorMessage(); 
    WriteToLog(exc.Message); 
    WriteToLog("Inner Exception: " + exc.InnerException); 
    Application.Exit(); 
} 

私の観察:任意の例外が処理時間の間に発生した場合は、Process.Start()方法はnullを返すコードスニペットに続いて、あなたのアイデアを与えるかもしれません。

誰かがこれがなぜ起こっているのかを伝えることができますか?これを克服する方法はありますか?

P.S:以前に例外が発生した場合でもプロセスが開始されないように、コードを変更する必要がありますか?

+0

あなたは 'Process.Start()'を呼び出すないとき? – imlokesh

+0

私は 'catch'ブロックの実行の後に呼びます。 –

+0

' catch'の中に 'return'を追加して、実行後のコードを防ぐ必要があります。 – Sinatr

答えて

0

Environment.Exit(1)を呼び出すと、実際にフォームアプリケーションが終了することがわかりましたが、これはApplication.Exit()メソッドを呼び出すことによって行われません。

詳しい情報は、以下のリンクから入手できます。How to properly exit a C# application?

関連する問題