2014-02-15 4 views
0

처리 된 예외와 처리되지 않은 예외 모두에 대해 예외 처리기를 C# 응용 프로그램에 작성하고 싶습니다. 처리 된 것들에 대해, 나는 응용 프로그램을 종료할지 또는 계속 할지를 지정할 수 있기를 원한다. (예를 들어, 데이터베이스 연결이 작동하지 않는다면 아무 문제가 없다. 나는 Exception 클래스가 메시지를 전달할 "Data"(사전)라는 것을 가지고 있지만, 그것이 어플리케이션을 종료하기 위해 플래그를 지정해야하는 곳이라는 것을 확신하지는 않는다. 나는 Boolean 프로퍼티를 가진 Custom Exception 클래스를 만드는쪽으로 더 기울어 져있다. 데이터는 예외에 대한 일부 사용자 지정 메시지에 사용될 수 있지만 응용 프로그램 내 통신을위한 장소는 아닙니다. 나는 나의 이해가 옳은지, 그리고 예외를 다루는 일반적인 방법인지 또는 더 좋은 방법이 있는지를 알고 싶다.isFatal 플래그가있는 예외 처리기

+1

"예외 처리기"라고 할 때 어떤 의미인지 알려주십시오. 그 용어는 몇 가지 의미를 지니고있다. –

+0

그리고 어떤 종류의 예외가 있습니까? 예를 보여주십시오. 일반적으로 예외가 throw되고 처리되지 않으면 응용 프로그램을 종료해야합니다. –

답변

0

WinForms 앱을 만드는 경우 Main() 메서드에서 첫 번째 양식이로드되기 전에 데이터베이스를 초기화하십시오. 거기에 예외가 발생하면 catch하고 데이터베이스 연결을 초기화 할 수 없음을 알리는 MessageBox를 표시하고 ()을 받아 들여서 폼이로드되지 않도록합니다. (실제 UI가 시작되면 모든 것이 제대로 작동하는지 확인하기 위해 양식을로드하기 전에 이와 같은 다른 모든 것을 연결할 수도 있습니다.)

이외의 경우 기본 예외는 기본 .NET 예외가 제공하지 않는 경우 유용합니다 (사용자의 경우와 같이) 필요한 기능이나 오류 유형이 발생할 때마다 사용자 정의 오류 처리가 수행되도록하려는 경우. 기본 예외를 사용하면 .NET 언어 코드 및 사용자 자신의 예외로 인해 겹칠 수 있습니다. 그와 같은 깃발을 쓰면 작동 할 것이지만 스택을 따라 잡는 위치에 따라 다릅니다.

+2

-1 : 사용자 정의 예외 클래스는 항상 좋은 생각이 아닙니다. 사용자 정의 예외를 _caught_해야하며 기본 제공 예외 또는 다른 사용자 정의 예외와 다르게 처리해야하는 경우에만 좋은 아이디어입니다. –

+0

아주 좋은 지적입니다. 기본 예외가 필요한 것을 제공하지 않을 때 나는 그것에 대해 의미했습니다. 내 대답을 조정하겠습니다. – krillgar