2013-07-19 56 views
1

如何處理錯誤,我在紅寶石fileutils中的CD

使用文件實用程序方法時,使用時有麻煩。

問題是當我嘗試訪問 不存在的目錄時,如何防止我的ruby腳本停止?

我發現這一點:

FileUtils.cd('/', :verbose => true) # chdir and report it 

,但它不工作,或者至少我不知道怎樣的語法著作!

+0

爲什麼你想抓住異常,在營救什麼,你想要執行。 –

回答

1

您的腳本「劇烈結束」,因爲FileUtils.cd在目錄不存在時會引發異常。因爲你的腳本不處理異常,所以它退出。

包裝你的代碼在begin - rescue - 塊這樣來處理異常:

require 'fileutils' 

begin 
    FileUtils.cd "A/non/existing/directory" 
rescue Errno::ENOENT => e 
    # do things for appropriate error handling 
    puts e.message 
end 

當目錄更改失敗的Errno::ENOENT拋出異常。在rescue塊中,你可以處理異常(這裏我只是輸出錯誤信息)。

+0

非常感謝你! – Pass