2010-11-17 17 views
0

很多時候,我正在寫一個函數,它會在成功時返回true,並在錯誤/失敗時返回false,並且基本上包裝另一個執行相同操作的函數。更好的方式來返回true/false調用的結果代碼

一個例子(基本上是獨立於語言的,但我會在ECMAScript中寫熟悉):

function SendEmail(to, from, subject, body) { 
var eml = new EmailObj(); 
eml.To = to; 
eml.From = from; 
eml.Subject = subject; 
eml.Body = body; 
return eml.Send(); // This will return true/false 
} 

但是,有時候,我想做些別的事情取決於內部函數的結果(比如說日誌具體信息):

function SendEmail(to, from, subject, body) { 
var eml = new EmailObj(); 
eml.To = to; 
eml.From = from; 
eml.Subject = subject; 
eml.Body = body; 
if(!eml.Send()) { 
    Log("Error in send: " + eml.Response); 
    return false; 
} 

return true; 
} 

但是,我從來沒有覺得我已經寫了良好的代碼時,我做這樣的事情。

你會寫這個不同嗎?我是偏執狂嗎?或者你認爲這種模式本身會導致這種困境,我應該看看能否改變更高層次的方法?

+0

對我來說很好 – paullb 2010-11-17 00:11:52

回答

4

不知道究竟爲什麼你擔心,但另一種選擇是這樣的:

var ret = eml.Send(); 
if (!ret) 
    Log("Error in send: " + eml.Response); 
return ret; 
相關問題