2011-11-19 78 views
4

我的源代碼的某些部分嵌套在try語句中,以便處理一些運行時錯誤,同時每一行都必須嘗試執行,即使前一行由於運行時錯誤。異常處理不中斷

目前我的代碼看起來像這樣

try 

    try 
    //statement1 
    except 
    end; 

    try 
    //statement2 
    except 
    end; 

    try 
    //statement3 
    except 
    end; 

finally 
//something 
end; 

我非常肯定走錯路,即使最終出認沽運作良好,我不得不爲幾十行的做到這一點。

如果希望每個語句來執行,那麼你必須把它寫你做的方式是有實現這個

回答

5

什麼更好的辦法。請注意,在這種情況下可能不需要嘗試/最後,因爲你正在吞嚥所有的異常。

但是,代碼看起來有點奇怪。我想知道你是否真的需要執行每一個陳述。通常你會寫:

try 
    statement1; 
    statement2; 
    statement3; 
except 
    //handle exceptions 
end; 

然後,如果在statement1例外,其他兩條線將不會執行。

但是,根本不處理異常並讓它們浮動到某個更高級別的處理程序將更爲常見。如果你正在使用異常做出例行的邏輯決策,那麼這將被認爲是不好的做法。

我認爲這會有助於您發佈一些處理異常的代碼以及您期望發生異常的一些細節。然後我們可以給你一些更具體的建議。

+2

+1 - 這有一種「你做錯了」的氣味。也許他正在移植以「錯誤恢復下一步」開頭的VB代碼 – afrazier