C#在运行时返回异常

TJH*_*JH7 2 c#

不要认为这是可能的,但我想我会问,也许有人可以建议另一种技术或模式.

假设我有一个Customer类,其中包含书籍列表,这些书籍都是从外部源单独提取的.如果Customer类成功但书籍加载失败,我不想抛出异常,除非客户端试图访问Books属性,所以..

this.Books = new List<Book>()
{
    throw new Exception("Books couldn't load because blah blah");
};
Run Code Online (Sandbox Code Playgroud)

沿着这些方向的东西可能吗?

spe*_*der 10

如何将此逻辑放入Books使用私有字段备份的属性中books:

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 除了Exception类型之外,这是一个很好的模式.最好抛出一个子类型(例如`InvalidOperationException`)或实现自己的子类型. (3认同)