2014-05-09 45 views
0

我練了Ruby如何打印異常,然後繼續連續執行,而不是跳轉到救援節

我經常把錯誤的代碼在我的文件中故意

例如Abc.hi

然後程序會報錯,然後退出。

所以我必須用begin with塊來包裹它。

我怎麼能讓wrong code只在控制檯上顯示異常, 並繼續執行下面的代碼而沒有用begin with塊封裝。

感謝

require 'pry' 

module Test 
    def hi 
    p "hihi" 
    end 
end 

def Test.hello 
    p "hello" 
end 

class Abc 
    include Test 
end 
abc = Abc.new 
begin 
    Abc.hi 
rescue Exception => e 
    p e 
end 

binding.pry 

回答

1

你不能這樣做,因爲那是例外的地步 - 他們打破流動。

如果你只是想看看在這一點上的堆棧跟蹤,使用caller

def a 
    puts caller 
end 
def b 
    a 
end 
def c 
    b 
end 
c() 
#=> prog:2:in `a' 
#=> prog:5:in `b' 
#=> prog:8:in `c' 
#=> prog:10:in `<main>'