Project1

标题: 腳本問題 有關獲取Backtrace [打印本页]

作者: nokaiwai    时间: 2013-7-12 16:46
标题: 腳本問題 有關獲取Backtrace
本帖最后由 nokaiwai 于 2013-7-13 15:11 编辑

隨便舉一個例子好了
例如運行以下腳本時

RUBY 代码复制
  1. def add4(num)
  2.   unless num.is_a?(Numeric)
  3.     p error = ArgumentError.new("...")   #=> #<ArgumentError: ...>
  4.     p error.backtrace                    #=> nil
  5.   end
  6.   begin
  7.     num + 4
  8.   ensure
  9.   p $!                                   #=> #<TypeError: can't convert Fixnum into String>
  10.   p $@                                   #=> ["{0000}:7:in '+'", "{0000}:7:in 'add4'", "{0000}:15:in '<main>'", "ruby:in 'eval'"]
  11.   p error.set_backtrace($@[2])           #=> ["{0000}:15:in '<main>'"]
  12.   raise error                            #=> Script '' line 15: ArgumentError occurred.\n...
  13.   end
  14. end
  15. add4("a")


請問如何在第4行時獲取需要的 backtrace  ("{0000}:15:in '<main>'") 呢?  謝謝

自己發現答案了
大概就是加上 rescue => error
http://www.ruby-doc.org/core-1.9.3/Exception.html
作者: 786617604    时间: 2013-7-12 16:50
如果LZ你使用的是VA,那么,test2的p应该为msgbox,
如果LZ不是用VA,那么,旁边就是VX和XP的提问区。
PS:LZ问题看不懂。。。{:2_276:}
作者: nokaiwai    时间: 2013-7-12 17:03
VA 也可以用 P 啊 0.0
又不一定要以視窗形式顯示

再說 它只是例子
P 和 MSGBOX 的什麼都好啦
難道還要吐槽說 「為什麼要 ADD4 ,加一或者減一不好嗎??」
反正這些都不重要 ~.~




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1