1
我想知道在這種通用語句類型中是否有更好的實踐達成共識。文體問題 - 是否分開功能?
if(CouldDoSomething())
DoThatThing();
else
WriteErrors(GetTheErrorsThatWouldHaveResulted());
。至於你要檢查潛在問題,那麼無論你想做的事還是回去拿錯誤消息的事情,這可能需要兩倍的工作。
它還需要3個獨立的功能:
CouldDoSomething
DoThatThing
和GetTheErrorsThatWouldHaveResulted
而
string errorString=TryToDoSomeThing();
if(!string.isNullOrEmpty(errorString))
WriteErrors(errorString);
可能不顯得乾淨,但只需要一個函數TryToDoSomething
,這意味着較少的額外開銷。一個人不必重複操作來檢查你是否可以做那件事,或者找出你做這件事會導致的錯誤。
可能有更多的方式來做到這一點,就像try/catch blocks
一樣。你的個人喜好是什麼?關於這類問題有什麼共識嗎?
如果您解析用戶輸入,是不是想向他們發送有關他們犯的一些/所有錯誤的消息? – user420667 2010-08-26 22:29:57
有什麼可以拒絕我與異常做到這一點? – bobrik 2010-08-27 21:59:32
你可以做到這一點,但你一次只能得到一個例外(我認爲),這可能是不可取的。 此外,如果您使用異常,您將被迫使用try/catch塊,並且不能執行其他兩個選項之一。 我想要更多的理由而不是做這個或那個。 – user420667 2010-08-28 01:51:26