我有點困惑。如果驗證方法應返回驗證結果,爲什麼會出現ArgumentException的課?
MSDN說,對ArgumentException的是什麼:
「時提供給 方法的其中一個參數無效時引發的異常。」
所以我會拋出一個異常,如果傳遞給我的方法的參數是無效的。
而且我發現,故建議可返回布爾加上字符串原因。 - 除了拋出異常。
所以,
問題:當validationg方法的參數,當參數無效,應該在什麼時候驗證方法拋出一個異常,當它不應該?
我有點困惑。如果驗證方法應返回驗證結果,爲什麼會出現ArgumentException的課?
MSDN說,對ArgumentException的是什麼:
「時提供給 方法的其中一個參數無效時引發的異常。」
所以我會拋出一個異常,如果傳遞給我的方法的參數是無效的。
而且我發現,故建議可返回布爾加上字符串原因。 - 除了拋出異常。
所以,
問題:當validationg方法的參數,當參數無效,應該在什麼時候驗證方法拋出一個異常,當它不應該?
如果你有一個目的是驗證它的參數的方法(例如:這是一個有效的用戶名/密碼組合),通過任何方式返回一個布爾(false = invalid)加上一個原因。不要爲預期的情況拋出異常(如果它不是預期的,爲什麼驗證?)
如果你有一個「Process」方法,情況就不同了:你必須有有效的參數,所以拋出一個合理的參數是合理的例外(說明問題)無效時。
「建議可返回布爾加上字符串原因」這將有助於舉,你讀這,有一個鏈接。 –
例如... http://stackoverflow.com/questions/5230978/is-it-a-good-practice-to-throw-an-exception-on-validate-methods-or-better-to-r – pencilCake
你以前的問題和這個問題有什麼不同? –