對C#/ .NET/GUI編程比較新,但是這裏有。現在我正在使用WinForms編寫一個業務應用程序。我有大約5個文本框和1個組合框,我想驗證它是否爲空,如果是,請告訴用戶並將注意力集中在該控件上。我應該如何去做這件事?在異常中封裝控件
我既可以有一個,如果是檢查每個控制語句:
if (usernameField IsNullOrEmpty) then:
setFocus(UsernameField);
return;
if (addressField IsNullOrEmpty) then:
setFocus(addressField);
return;
continue with rest of application as normal...
或者,我可以有例外做到這一點:
try {
if (usernameField IsNullOrEmpty) then:
throw new Exception(usernameField);
if (addressField IsNullOrEmpty) then:
throw new Exception(addressField);
} catch (Exception e) {
setFocus(ControlField) // encapsulate in exception some way?
}
或防止代碼重複,只寫一個函數:
try {
checkField(usernameField);
checkField(addressField);
} catch (Exception e) {
setFocus(ControlField) // encapsulate in exception some way?
}
void checkField(control ctrl) {
if (ctrl IsEmptyOrNull)
throw new Exception(ctrl);
}
對於GUI編程來說相對較新,文本字段爲空是否值得使用異常還是會被視爲正常的程序流?
正是我在找的東西。那麼這樣的事情不值得異常處理? – keelerjr12
輔助方法不需要異常處理程序,因爲它正在驗證已知控件的值。如果你懷疑ctrl有時是空的,你可以爲它添加一個檢查並做一些其他的事情,但是個人而言,我會離開空的ref異常或拋出一個ArgumentNullException。 –