我有一個簡單的樣式問題。在我編寫的應用程序中,有幾個類方法,它們包括try/catch塊以及取決於塊結果的塊外部的函數。例如(在psudo代碼):編程風格:嘗試捕獲和外部依賴
try {
start_transaction;
persist_data;
stop_transaction;
}
catch {
rollback_transaction;
}
finally {
}
if (transaction_successful)
send_message;
我能想到的測試,如果交易成功,將設置在try catch塊的方法可變標誌,然後在if語句測試它的唯一方法。當然這會起作用,但是我很想知道傳統的「智慧」是什麼?也許「send_message」應該在try catch塊中,儘管這可能是不必要的混亂?我想這是一個相當直接的問題 - 只是爲了確保我的代碼結構合理。
好,如果你只是想在事務成功的時候發送消息,我會建議把它作爲try塊本身的一部分。你爲什麼認爲這會是一種「不必要的混亂」? – Sujay 2012-07-12 02:19:46
我猜想當我閱讀代碼時,我喜歡在單個「塊」中看到單個函數 - 可能只是從我的Fortran時代開始的一段時間:)。更重要的是,如果send_message調用失敗,那麼事務將被回滾。這是一個問題,因爲交易是主要的(而且是關鍵的)功能(而不是交易成功的信息) – skyman 2012-07-12 02:28:21
由於其他方面a)至少引入了一個額外的變量和b)額外的邏輯,看看你如何得出將發送消息放入try塊的結論會增加混亂。 – Voo 2012-07-12 02:37:28