2011-08-05 15 views
2

請解釋爲什麼當有異常時,followin函數返回「1」?返回「1」的目的是什麼?當出現異常時,Python函數返回1

def initialize(): 
    """ 
    Starting point for the program. 
    """ 
    try: 
     go = Car() 
     print "Instance of Car created" 
    except KeyboardInterrupt: 
     return 1 
+3

因爲設計者認爲在KeyboardInterrupt的情況下返回「1」是個好主意...... –

+0

沒有更多的上下文,您的猜測與我們的一樣好。請提供更多關於這個片段嵌入到的一般程序的信息。 –

+0

好吧,我認爲這是一個常見的python概念,當有異常時返回「1」。 – alwbtc

回答

4

這是C中相當常見的習慣用法,用於在出現錯誤時返回非零值。

我在這裏的預感是創建這個函數的人被用於C語言編程,並且不熟悉異常處理。如果沒有更大的代碼示例是不可能的,但是如果我是正確的,那麼在函數返回1或非零值的情況下調用此函數時可能會出現某種錯誤處理。

如果是這種情況,使用異常的更適當的方法是使用raise向上傳遞異常以處理其他位置,或者在函數中處理異常。

+0

KeyboardInterrupt出現在我按Ctrl + C時,對不對?創建一個Car類的實例應該只需要幾個毫秒,那麼爲什麼你認爲他們在這裏插入了一個KeyboardInterrupt異常呢?他們是否認爲用戶可以在這些毫秒內按Ctrl + C? – alwbtc

+0

@alwbtc:我不能告訴你需要多長時間才能看到代碼。這可能是在Car類正在建造的時候,有一個錯誤使程序陷入了一個無限循環或類似的問題。這可能已經成爲調試工具。 – Swiss

0

在我看來沒有必要做到這一點,只有當汽車()構造函數的時間太長,你想對付它曾經initialize()回報。

相關問題