我有兩個班這樣值無效
class ClassA
{
// Some properties
public String PropertyA { get; set; }
}
class ClassB
{
public List<ClassA> PropertyB { get; private set; }
ClassB()
{
PropertyB = new List<ClassA>();
}
}
然後在其他地方我有這樣
public String MyMethod(ClassB argument)
{
//do stuff with all the PropertyA values
}
的方法我想到的是從參數中沒有元素PropertyB有一個null或空的PropertyA(將產生一個無效的結果),我應該拋出什麼樣的異常? ArgumentException的?我有一個方法有一個ClassB類型的參數,ClassB有一個ClassA的列表,每個ClassA有一個屬性是一個字符串。我用這個屬性建立一個查詢,所以我相信更好的是它停在這裏,而不是使用查詢時。
你爲什麼要拋出一個異常,在這種情況下?我會讓.NET框架拋出異常。 –
你的意思是,如果'arguments'是包含數組:'[someClassAInstance,空,anotherInstance]',應該怎麼扔,因爲你不想'null'參考作爲元素值中的一個?編輯:和/或如果說'anotherInstance.PropertyA == null'也是無效的,並應拋出異常? –
@Vraiment根據您的編輯,我建議你記錄的方法DOC嵌套的要求,進行預驗證檢查和拋出一個'ArgumentException'(或從繼承的自定義除外),或移動檢查較低級別的調用(可能是一個'BuildQuery',它最終可能會將'PropertyA'字符串作爲輸入參數,這會引發'ArgumentNullException'),這意味着您將開始構建查詢並部分拋出異常。 –