2011-05-02 141 views

回答

2

我不會裁減判決並聲稱「這很糟糕」,因爲有時您可能需要它。 Python有時故意拋出異常,而不是讓你問(EAFP的座右銘),在某些情況下,嵌套try/catch是有用的 - 當這對代碼的邏輯流程有意義時。

但我的猜測是,大部分時間你都沒有。因此,對您而言,更好的問題是在您認爲需要此類代碼的情況下提供特定用例。

+2

我同意這一個。我現在使用嵌套異常,然後自己使用嵌套異常,這不是「固有的」不好的。有時它甚至可能會提高代碼的可讀性...... – sbrattla 2011-05-02 08:07:34

+0

現在,它是捕捉中間語句中的一些錯誤的唯一方法......如果其中任何一個失敗,所有其他語句都變得無用,並且頂級語句變爲無用的,因爲我需要所有的人都履行,以履行最重要的聲明。 (即:將參數傳遞給一個類的方法,該方法將數據發送到外部API [Google聯繫人])。 謝謝! :) – 2011-05-02 08:12:27

+1

@Jorge:如果你只是測試兩個條件,那麼if/else語句看起來更適合。你可能在這裏使用try/except作爲隱藏的goto語句。如果你發佈更詳細的代碼,你會得到更具體的答案! – Ber 2011-05-02 09:17:34

3

不,這有點常見(除了關鍵字是except而不是catch)。這取決於你需要做什麼和設計。

什麼是壞的,我看到太多了,正在趕上頂級Exception類,而不是更具體的東西(例如KeyError)。或提高相同。

+0

非常真實......這是除了,不抓住。我的錯。我現在捕捉Exception類,但是稍後我會擴展它,當我定義了更多的東西時,它可能會給我一個更好的控制,這種結構將不是必需的。謝謝你的解釋,非常感謝。 – 2011-05-02 08:09:15