2
對不起,我不確定如何分類這個問題。我正在更新一些ruby代碼到1.9.3,並且看到一些奇怪的行爲。蒸出的問題,我得到:ruby版本之間隱含的異常類別差異
def convert(exception)
raise exception.message
end
begin
convert(StandardError.new(StandardError))
rescue => e
puts e.class
end
在1.9.2中,輸出
StandardError
和1.9.3,TE輸出
RuntimeError
展望雖然紅寶石文檔並且發佈筆記並沒有給我任何線索,因爲這裏可能會發生什麼,並且任何幫助都會被讚賞!
好的,這是有道理的。我需要更好地閱讀c代碼。爲了清楚起見,並不是說消息本身返回了一個類,它只是返回了傳入的任何對象,而應該將其轉換爲字符串。謝謝您的幫助! – Chris 2012-03-08 21:06:53
它應該返回一個'String',是的,但是它實際返回的結果有點難以辨認。在它上面調用'.class'會產生'Class',但是可能會有更多奇怪的事情發生。它很難遵循,因爲它在C(和C Ruby是巨大的)。 – 2012-03-08 21:09:17