가능하다고 생각하지 않지만 내가 물을 것이라고 생각하지만 다른 기술이나 패턴을 제안 할 수 있습니다.런타임시 예외를 반환하는 C#
나는 외부 소스에서 개별적으로 가져온 책 목록으로 구성된 고객 클래스가 있다고 가정 해보십시오. 고객 클래스는 성공적인하지만 책은
this.Books = new List<Book>()
{
throw new Exception("Books couldn't load because blah blah");
};
가능이 라인을 따라 뭔가가 .. 클라이언트가 그래서 책 속성에 액세스하려고하지 않는 한 나는 예외를 throw하지 않으려는로드에 실패하면? 당신의 책 속성에
public IEnumerable<Book> Books //or public IList<Book> Books
{
get
{
if(this.books == null)
throw new Exception("Books couldn't load because blah blah");
return this.books;
}
}
btw, FCL에는 이러한 상황에 대한 여러 특수 클래스가 있습니다. - ArgumentException','ArgumentNullException' 및'ArgumentOutOfRangeException' – abatishchev
Exception 유형의 예외를 발생시키지 않는 것이 좋습니다. NET의 다른 모든 예외에 대한 기본 유형이므로보다 구체적인 예외 유형이 생기거나 사용자 정의 예외를 만들 수 있습니다. – Arseny
사실 InvalidOperationException이 적절한 예외라고 생각합니다. MSDN From InvalidOperationException - 개체 상태에 따라 부적절한 개체 호출이 발생했습니다. –