輸入參數驗證後立即拋出異常據我所知,GetInfo1方法從下面提供更好的可讀性。但是,在以下兩種方法之間是否存在其他差異(例如運行時執行),即在方法開始時立即拋出異常與方法結束相比較?C# - 是否有任何額外的優勢,在方法
public string GetInfo1(string name) {
if(string.IsNullOrWhiteSpace(name))
throw new ArgumentException(nameof(name));
var info = GetInfoByName(name);
return info;
}
public string GetInfo2(string name) {
if(!string.IsNullOrWhiteSpace(name)) {
var info = GetInfoByName(name);
return info;
}
throw new ArgumentException(nameof(name));
}
請注意,拋出'ArgumentNullException'爲非空參數是非常糟糕的形式。如果我調用'GetInfo1(「」)'我可能會期望'ArgumentException',但不是'ArgumentNullException'。 –
同意@JonSkeet,但添加了僞代碼只是好奇,以找到差異。我會更新它。謝謝 –