2013-06-30 59 views
-1

我偶爾會得到一個OAuthException,我試圖用捉住它:紅寶石:援救OAuthException例外

rescue OAuthException => exception 
# exception handling code here 

但是我得到:

rescue in <main>': uninitialized constant OAuthException (NameError) 

任何想法,我缺少的是什麼?

==== UPDATE

以下是我目前的解決方法。事實上,我不得不做一個message.match()似乎有點hacky。

rescue GemModule::GemSubmodule::APIError => exception 
    if exception.message.match("OAuthException") 

有沒有什麼改進?

+0

我沒有得到日誌條目。它剛剛退出,給出上面的'begin'語句和'rescue in

'消息的行號。 – Snowcrash

+0

是的,有一個父類提供此異常。 – Snowcrash

+0

如果出現APIError,您是否需要根據錯誤消息執行特定的操作? – oldergod

回答

0
begin 
    raise OAuthException, 'hello' 
rescue OAuthException => e 
    puts e 
end 

--output:-- 
1.rb:3:in `rescue in <main>': uninitialized constant OAuthException (NameError) 
    from 1.rb:1:in `<main>' 

class OAuthException < Exception 
end 

begin 
    raise OAuthException, 'hello' 
rescue OAuthException => e 
    puts e 
end 

--output:-- 
hello 

錯誤消息告訴你,在ruby中沒有OAuthException這樣的事情。

+0

是的,不是在Ruby中。這個異常是由Ruby gem的一個類提供的。 – Snowcrash

+0

然後在您的文件中需要寶石。 – 7stud