當給定的參數無效時接受多個參數的方法應引發哪個異常當一起給出時?無效的參數對異常
作爲一個例子,考慮
public Bar DoSomething(Foo f1, Foo f2)
{
//implementation...
}
其中完成操作是在f1
和f2
之間的一些關係或相似隊伍(如果陣列/集合,它們必須具有相同的大小;如果運動員,它們必須是在同一支球隊/對手隊伍中;等等)。
每個參數都是該操作的有效參數,但它們在一起無效。例如:
public MatchResult PlayMatch(Player a, Player b)
{
if(a.Team == b.Team)
{
//Throw exception here, since players must be on different teams
}
//Play match, determine winner
}
拋出ArgumentException
似乎不正確的,因爲它意味着,其中一個參數是無效的,而不是所述雙參數一起是無效的。
可以'MatchResult'不住指示對象是無效的值? – 48klocs
爲什麼ArgumentException無效? 「b.Team」的論據不應該等於「a.Team」;這就是爲什麼「b」是一個無效的論點。 –