2017-11-13 5 views
-1

예외 처리를 위해 작은 도움이 필요한 Windows Forms 응용 프로그램을 만들고 있습니다.예외에 대한 양식 응용 프로그램 중지

내 응용 프로그램 (개요) : 처음부터 사용자 입력을받습니다. 사용자가 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 .: 이전에 예외가 발생해도 프로세스가 시작되지 않도록 코드를 수정해야합니까?

+0

이 때'Process.Start를()'를 호출합니까? – imlokesh

+0

'catch '블록 실행 후 호출합니다. –

+0

실행 후 코드를 방지하려면'catch' 안에'return'을 추가해야합니다. – Sinatr

답변

0

Environment.Exit(1)Application.Exit() 메서드를 호출하여 수행하지 않는 양식 응용 프로그램을 실제로 종료한다는 것을 알아 냈습니다.

자세한 정보는 다음 링크에서 얻을 수 있습니다 : How to properly exit a C# application?