当我使用Thread.new {}生成一个线程时,看起来在该线程中发生的任何异常都看不到白昼,应用程序只是静静地忽略它
答案 0 :(得分:3)
通常,线程彼此隔离,因此一个中的异常不会终止整个应用程序。
但是,虽然我从未使用它们,但Thread
类有几个abort_on_exception
方法,即使有一些例子。他们应该做你想做的事
http://corelib.rubyonrails.org/classes/Thread.html
答案 1 :(得分:3)
添加到Nikita的答案中,您还可以通过在您生成的主题上调用thread.join
来触发异常。
如果在(ruby -d
)上运行带有debug标志的程序,那么当线程中出现未处理的异常时,你也会中止。