기본적으로 가능한 한 빨리 모든 오류를 처리해야합니다. 따라서 웹 서비스를 호출하면 try/catch 블록에서 모든 호출을 감싸고 거기에서 오류를 처리합니다. 예를 들어, 정확한 오류, 더 많은 일반적인 webservice 관련 예외를 집계, DataSourceFaultException (예를 들어, 이름입니다)은 UI에서 수신하고 UI는 쉽게 결정할 수 있으며 통신에 실패하여 요청한 정보를 표시 할 수 없습니다. 다시 시도하거나 사용자에게 알리거나 다른 작업을 수행하도록 선택하십시오.
그러나 장기 실행 응용 프로그램을 사용하면 더 많은 오류가 발생할 수 있습니다. 대다수는 예측하기 쉽지 않습니다. 특정 호출과 관련이 없기 때문에 메모리가 부족할 수 있습니다. 재귀가 스택 오버플로를 유발할 수 있으며, 시스템 타이머가 최대 값에 도달 할 수 있고 처음부터 시작할 수 있습니다.
모든 방법에서 이러한 오류를 처리하면 안됩니다. 코드 가독성이 떨어지며 오류가 발생하기 쉽습니다. 이러한 오류는 UnhandledException 이벤트에서 가장 잘 처리됩니다. 그러나 예외가 UnhandledException 이벤트에 도달하면 응용 프로그램 상태에 대해 아무 것도 생각할 수 없다는 점을 기억해야합니다. 오류로 인해 일부 또는 전체 내부 상태가 손상되었을 수 있습니다. 따라서 이러한 상황이 발생하면 오류 로그를 작성하고 응용 프로그램을 기꺼이 다시 시작해야합니다 (전체 응용 프로그램이 아닌 응용 프로그램의 상태를 다시 초기화 할 수 있습니다. 그렇다면 유효한 옵션이기도합니다). 오류로 인해 복구 할 수 없으며 이러한 상황을 처리 할 수 없음을 알고 있습니다.
의견을 보내 주셔서 감사합니다. "응용 프로그램의 상태를 다시 초기화하십시오"라고 말하면 응용 프로그램을 다시 시작 하시겠습니까? –
반드시 그렇지는 않지만 가장 안전한 방법입니다. 전체 응용 프로그램을 다시 시작하지 않고 상태를 다시 초기화 할 수는 있지만 매우주의해야합니다. – maciejkow
그것은 다음과 같이 말할 수 있습니다. = new myForm(); –