发生异常后继续使用pry作为调试器?

时间:2014-05-19 22:32:18

标签: ruby pry

启动PRY:

pry problem_12b.rb

这是我的控制台:

     5: def divisors
     6:   return [1] if self == 1
     7:   primes, powers = self.prime_division.transpose 
     8:   exponents = powers.map{|i| (0..i).to_a} 
     9:   divisors = exponents.shift.product(*exponents).map do |powers| 
    10:     primes.zip(powers).map{|prime, power| prime ** power}.inject(:*) 
    11:   end 
    12:   divisors.sort.map{|div| [div, self / div]} 
 => 13:   binding.pry
    14: end

让我们玩这个:

28.divisors
p divisors
#[1, 7, 2, 14, 4, 28]

很酷......现在说我想执行第12行。我可以这样做:

p divisors.sort.map{|div| [div, self / div]} 
#[[1, 28], [2, 14], [4, 7], [7, 4], [14, 2], [28, 1]]

我想说的是:p line(12)(您在此处插入代码)因为这不正确并且它会爆炸。

Exception: NoMethodError: undefined method `line' for 28:Fixnum

在它爆炸之后我怎么能退一步到上面的第一个代码块。我唯一的选择是不能再次exit!pry problem_12b.rb

回顾:

  1. 如何通过pry行号执行代码?
  2. 如果我输入错误或爆炸(例外)我怎样才能恢复到以前的状态?

0 个答案:

没有答案