잘못된 개체 상태를 나타내는 기본 제공 .NET 예외가 있습니까?
잘못된 상태 (예 : 한 번만 호출해야하는 초기화 메서드)가 두 번 호출되는 경우 어떤 예외를 throw해야합니까? 나는 실제로 의미있는 내장 예외를 보지 못했습니다. 이것은 프레임 워크에 있어야하는 것 같습니다. 올바른 위치를 찌르고 있지 않습니까?
InvalidOperationException이 아닐까요?
객체의 현재 상태에 대해 메서드 호출이 유효하지 않을 때 throw되는 예외입니다.
일반적으로 잘못된 상태에 도달 할 수 없도록 개체를 프로그래밍해야합니다 . 당신이 당신의 객체가 잘못된 상태에 있음을 알 수 있다면 당신은 던져해야 SystemException
하거나 예외가 직접 파생 에서 SystemException
. 이것은 제목 의 질문 에 대한 답 입니다.
그러나 질문 텍스트에서 언급 하는 예외적 인 상황은 개체 를 불법 상태로 밀어 넣는 사용자입니다 . 이 경우 InvalidOperationException
에 표시된대로 던질 수있는 권리 예외 이 이전 대답 . 이렇게하면 개체 가 불법 상태 가 되는 것을 방지 할 수 있습니다 .
말할 필요도없이 개체를 어떻게 사용해야하는지 문서화 해야합니다. 개체의 기대 수명이 길거나 다른 개체간에 사용 / 공유되는 경우 사용자가 현재 상태를 요청할 수 있고 ToString
, 예를 들어 디버깅에서 현재 상태를 텍스트로 검색 하도록 구현 하는 것이 좋습니다. 환경 / 로그.
내가 System.InvalidProgramException이라고 말하면 원하는 것에 가장 가깝습니다. 사용자 지정 예외를 던지는 데있어 문제점은 무엇입니까?
'IT Share you' 카테고리의 다른 글
neo4j 데이터베이스를 재설정 / 삭제 / 삭제하는 방법은 무엇입니까? (0) | 2021.01.08 |
---|---|
파이썬 피클 프로토콜 선택? (0) | 2021.01.08 |
축 레이블 사용자 지정 (0) | 2021.01.08 |
장치 'emulator-5554'에 * .apk를 설치하지 못했습니다. EOF (0) | 2021.01.08 |
규정 된 ID / 이름 및 규정되지 않은 ID / 이름은 무엇입니까? (0) | 2021.01.08 |