Как получить сообщения об ошибках от рубиновых потоков

Попробуйте, это будет работать в SQL, я не очень разбираюсь в Hive, но это должно работать на основе того, что я прочитал.

SELECT id, x_date, y, z, q, a
FROM log
WHERE z IN ('1','2','3','4','5') 
      AND id IN (
         SELECT id
         FROM log
         WHERE ((to_date(x_date)) >= (date_sub(current_date, 1)))
               AND y like '%timeout%')
12
задан Shalmanese 7 February 2009 в 16:04
поделиться

3 ответа

Установите класс Потока abort_on_exception отметьте к истинному.

Поочередно, перенесите тело потока в блок броска/выгоды и выведите исключение в выгоде.

17
ответ дан 2 December 2019 в 04:43
поделиться

Это должно зафиксировать любые ошибки, Вы явно не обрабатываете и печатаете их к STDOUT.

require 'pp'

Thread.new {
  begin
    a = 1/0
  rescue
    pp $!
  end
}

результат: #<ZeroDivisionError: divided by 0>

6
ответ дан 2 December 2019 в 04:43
поделиться

SET $ Debug true (вы можете сделать это из командной строки с -D ), и вы получите

ruby -d bad_thread.rb 
Exception `LoadError' at /usr/lib/ruby/site_ruby/1.8/rubygems.rb:1113 - no such file to load -- rubygems/defaults/operating_system
Exception `LoadError' at /usr/lib/ruby/site_ruby/1.8/rubygems/config_file.rb:34 - no such file to load -- Win32API
Exception `ZeroDivisionError' at bad_thread.rb:2 - divided by 0
bad_thread.rb:2:in `/': divided by 0 (ZeroDivisionError)
    from bad_thread.rb:2
    from bad_thread.rb:1:in `initialize'
    from bad_thread.rb:1:in `new'
    from bad_thread.rb:1
9
ответ дан 2 December 2019 в 04:43
поделиться
Другие вопросы по тегам:

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