Спасение Ruby для отображения полного следа

Если Вы совершенно уверены в том, что Вы делаете (т.е. Вы не должны будете искать значения списка, например), Вы могли также сериализировать свой объект, или просто объект списка, и сохранить его в столбце двоичных данных.

Просто разделение символа значения могут быть прекрасными также и более дешевые с точки зрения сохранения и загрузки, но быть осторожными, Ваши данные не содержат символ разделителя, или выходят из него (и обрабатывают Escape соответственно при загрузке и т.д... Ваш предпочтительный язык может сделать лучшее задание в этом, чем Вы, все же.;))

Однако для "надлежащего" решения, сделайте то, что Mehrdad описал выше.

19
задан RyanScottLewis 23 September 2009 в 15:15
поделиться

1 ответ

Значение где-то хранится, на основе этого вызова #inspect:

irb(main):001:0> begin
irb(main):002:1* puts File.join(nil, "Hello")
irb(main):003:1> rescue => exception
irb(main):004:1> puts exception.inspect
irb(main):005:1> end
#<TypeError: can't convert nil into String>
=> nil

Сообщение об исключении является описательной частью:

irb(main):006:0> begin
irb(main):007:1* puts File.join(nil, "hello")
irb(main):008:1> rescue => ex
irb(main):009:1> puts ex.message
irb(main):010:1> end
can't convert nil into String
=> nil

Итак, чтобы получить тип данных, который вы ищите, можно сделать что-то вроде следующего:

irb(main):015:0> begin
irb(main):016:1* puts File.join(nil, "hey")
irb(main):017:1> rescue => ex
irb(main):018:1> puts "#{ex.backtrace}: #{ex.message} (#{ex.class})"
irb(main):019:1> end
(irb):16:in `join'(irb):16:in `irb_binding'C:/Ruby/lib/ruby/1.8/irb/workspace.rb
:52:in `irb_binding':0: can't convert nil into String (TypeError)
=> nil
24
ответ дан 30 November 2019 в 04:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: