2015-05-23 49 views
0

我有一個使用wmctrl庫的Ruby腳本,我想確保任何使用我的CLI應用程序的人都將此作爲所有方法的依賴項。將第三方庫的異常提升爲Ruby類中的依賴關係的最佳實踐是什麼?引發系統庫依賴的異常

我提出的黑客攻擊是發出whatis系統命令並閱讀退出狀態代碼。如果它沒有找到

`which wmctrl` 
unless $? == 0 
    raise StandardError, "The wmctrl library is required." 
end 

回答

1

require將引發一個錯誤,你可以拯救它指定的錯誤消息,如果你想:

begin 
    require 'wmctrl' 
rescue LoadError 
    # error handling code here 
end 
+0

是啊,這是怎麼了'multi_json'檢查哪個'JSON '庫也可用:https://github.com/intridea/multi_json/blob/master/lib/multi_json.rb#L52 –

+0

這似乎不適用於系統庫,如imagemagick。 – wurde

+0

如果用戶沒有系統庫,最有可能意味着他們沒有安裝正確的ruby版本的正確版本? – Anthony