Ruby--Kernel#caller方法

用途:
caller可以返回當前位置的調用者詳細信息,異常的錯誤棧信息(Exception#backtrace)即通過該方法獲得。

caller([level])

以$@的back trace(字符串數組)形式返回level層上(省略參數時爲1)的調用者的信息。若是頂層的話就返回空數組。將caller的返回值代入$@就可以設定異常的發生位置。

示例:
def foo
p caller(0)
p caller(1)
p caller(2)
p caller(3)
end

def bar
foo
end

bar

=> [“-:2:in foo'", "-:9:inbar’”, “-:12”]
[“-:9:in `bar’”, “-:12”]
[“-:12”]
[]

參考資料:
http://ruby-doc.org/core-2.3.0/Kernel.html#method-i-caller
http://www.kuqin.com/rubycndocument/man/stdlib_function.html

發佈了32 篇原創文章 · 獲贊 5 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章