我現在的情況:嵌套try/catch語句不好嗎?
try:
try:
condition
catch
try:
condition
catch
catch
major failure
做不好有這樣的代碼?它是否太雜亂,或者這樣的事情有什麼含義?
我現在的情況:嵌套try/catch語句不好嗎?
try:
try:
condition
catch
try:
condition
catch
catch
major failure
做不好有這樣的代碼?它是否太雜亂,或者這樣的事情有什麼含義?
我不會裁減判決並聲稱「這很糟糕」,因爲有時您可能需要它。 Python有時故意拋出異常,而不是讓你問(EAFP的座右銘),在某些情況下,嵌套try/catch
是有用的 - 當這對代碼的邏輯流程有意義時。
但我的猜測是,大部分時間你都沒有。因此,對您而言,更好的問題是在您認爲需要此類代碼的情況下提供特定用例。
不,這有點常見(除了關鍵字是except
而不是catch
)。這取決於你需要做什麼和設計。
什麼是壞的,我看到太多了,正在趕上頂級Exception
類,而不是更具體的東西(例如KeyError)。或提高相同。
非常真實......這是除了,不抓住。我的錯。我現在捕捉Exception類,但是稍後我會擴展它,當我定義了更多的東西時,它可能會給我一個更好的控制,這種結構將不是必需的。謝謝你的解釋,非常感謝。 – 2011-05-02 08:09:15
我同意這一個。我現在使用嵌套異常,然後自己使用嵌套異常,這不是「固有的」不好的。有時它甚至可能會提高代碼的可讀性...... – sbrattla 2011-05-02 08:07:34
現在,它是捕捉中間語句中的一些錯誤的唯一方法......如果其中任何一個失敗,所有其他語句都變得無用,並且頂級語句變爲無用的,因爲我需要所有的人都履行,以履行最重要的聲明。 (即:將參數傳遞給一個類的方法,該方法將數據發送到外部API [Google聯繫人])。 謝謝! :) – 2011-05-02 08:12:27
@Jorge:如果你只是測試兩個條件,那麼if/else語句看起來更適合。你可能在這裏使用try/except作爲隱藏的goto語句。如果你發佈更詳細的代碼,你會得到更具體的答案! – Ber 2011-05-02 09:17:34