2015-11-08 22 views
0
import shutil 

def copyDirectory(src, dest): 

    try: 
     shutil.copytree(src, dest) 
    except IOError as why: 
     print (why.strerror + ": " + src) 



source="C:/Users/Nexusfactor/Desktop/Copy" 
destination="C:/Users/Nexusfactor/Desktop/Destination" 

copyDirectory(source, destination) 

我已經寫了一個腳本,將目錄複製到目標。如果源目錄不存在,那麼它將打印一條消息,說明這一點。我是否在Python中正確實現了catch塊?

問:

有我在做我的劇本什麼嘗試,捕捉錯誤時被認爲是不好的做法?

回答

1

你的代碼基本上沒問題,但是你確定要默認錯誤嗎?

如果有人使用你的copyDirectory()函數來複制一個目錄,然後繼續做其他的東西,他的程序將繼續運行,即使目錄複製失敗。由於這個原因,它甚至可能在其他地方引發其他錯誤,到那時可能很難追蹤。

爲什麼不直接提出錯誤?讓所有人都能處理他們自己的複製目錄失敗的問題,因爲複製是成功的,因此它通常是程序的重要組成部分。

+0

AH,你能幫我糾正我的代碼,說明你在說什麼嗎? – Nexusfactor

+0

@Nexusfactor爲什麼首先要定義'copyDirectory()',爲什麼不直接使用'shutil.copytree()'? –

+0

我可以,但是,我學會了如何用Python編寫函數,並且看到了幾個他們使用函數的例子,但我可以。沒有真正的理由,除了我想, – Nexusfactor

相關問題