처리 된 예외와 처리되지 않은 예외 모두에 대해 예외 처리기를 C# 응용 프로그램에 작성하고 싶습니다. 처리 된 것들에 대해, 나는 응용 프로그램을 종료할지 또는 계속 할지를 지정할 수 있기를 원한다. (예를 들어, 데이터베이스 연결이 작동하지 않는다면 아무 문제가 없다. 나는 Exception 클래스가 메시지를 전달할 "Data"(사전)라는 것을 가지고 있지만, 그것이 어플리케이션을 종료하기 위해 플래그를 지정해야하는 곳이라는 것을 확신하지는 않는다. 나는 Boolean 프로퍼티를 가진 Custom Exception 클래스를 만드는쪽으로 더 기울어 져있다. 데이터는 예외에 대한 일부 사용자 지정 메시지에 사용될 수 있지만 응용 프로그램 내 통신을위한 장소는 아닙니다. 나는 나의 이해가 옳은지, 그리고 예외를 다루는 일반적인 방법인지 또는 더 좋은 방법이 있는지를 알고 싶다.isFatal 플래그가있는 예외 처리기
답변
WinForms 앱을 만드는 경우 Main()
메서드에서 첫 번째 양식이로드되기 전에 데이터베이스를 초기화하십시오. 거기에 예외가 발생하면 catch하고 데이터베이스 연결을 초기화 할 수 없음을 알리는 MessageBox를 표시하고 ()을 받아 들여서 폼이로드되지 않도록합니다. (실제 UI가 시작되면 모든 것이 제대로 작동하는지 확인하기 위해 양식을로드하기 전에 이와 같은 다른 모든 것을 연결할 수도 있습니다.)
이외의 경우 기본 예외는 기본 .NET 예외가 제공하지 않는 경우 유용합니다 (사용자의 경우와 같이) 필요한 기능이나 오류 유형이 발생할 때마다 사용자 정의 오류 처리가 수행되도록하려는 경우. 기본 예외를 사용하면 .NET 언어 코드 및 사용자 자신의 예외로 인해 겹칠 수 있습니다. 그와 같은 깃발을 쓰면 작동 할 것이지만 스택을 따라 잡는 위치에 따라 다릅니다.
-1 : 사용자 정의 예외 클래스는 항상 좋은 생각이 아닙니다. 사용자 정의 예외를 _caught_해야하며 기본 제공 예외 또는 다른 사용자 정의 예외와 다르게 처리해야하는 경우에만 좋은 아이디어입니다. –
아주 좋은 지적입니다. 기본 예외가 필요한 것을 제공하지 않을 때 나는 그것에 대해 의미했습니다. 내 대답을 조정하겠습니다. – krillgar
- 1. 예외 처리기
- 2. "글로벌"예외 처리기
- 3. Java의 전역 예외 처리기
- 4. iOS - 전역 예외 처리기
- 5. Java : 예외 처리기
- 6. PDO를위한 별도의 예외 처리기
- 7. 일반 예외 처리기 오케스트레이션
- 8. ServiceClientBase의 예외 처리기
- 9. 함수로 예외 처리기
- 10. C# 예외 처리기 찾기
- 11. EJB 전역 예외 처리기
- 12. 델파이 예외 처리기 비교
- 13. Java 글로벌 예외 처리기
- 14. 자바 스윙 예외 처리기
- 15. AWS SES 예외 처리기 - 너무 많은 예외 -
- 16. JSF 전역 예외 처리기 예외 거품 처리
- 17. 선언 예외가없는 마법 예외 처리기 예외
- 18. 캐치되지 않는 예외 처리기 - UiAutomator
- 19. WCF 오류 처리기 예외 로깅
- 20. 봄 MVC : 전역 예외 처리기
- 21. asp.net 사용자 지정 처리기 예외?
- 22. VB 6 전역 예외 처리기
- 23. 국제화 예외 처리기 작성 방법
- 24. 처리되지 않은 예외 처리기 .Net 3.5 SP1의 처리기
- 25. 플래그가있는 시간 명령 플래그가있는 응용 프로그램을 실행 중
- 26. android의 모든 활동에서 일반적인 예외 처리기
- 27. 이벤트 처리기 내 예외 관리 사례
- 28. 는 페이지 전체의 디폴트 예외 처리기
- 29. ruby on rails 3.1 전역 예외 처리기
- 30. C++ Win32 처리되지 않은 예외 처리기
"예외 처리기"라고 할 때 어떤 의미인지 알려주십시오. 그 용어는 몇 가지 의미를 지니고있다. –
그리고 어떤 종류의 예외가 있습니까? 예를 보여주십시오. 일반적으로 예외가 throw되고 처리되지 않으면 응용 프로그램을 종료해야합니다. –