Как получить рубин для вывода исключения в потоке?

Когда я создаю поток с Thread.new {}, это выглядит так, как будто любое исключение, которое происходит в этом потоке, никогда не увидит свет, и приложение просто тихо игнорирует его

7 голосов | спросил Tyler Gillies 2 PM000000110000002531 2010, 23:02:25

2 ответа


0

Обычно потоки изолированы друг от друга, поэтому исключение в одном не прекратит работу всего приложения.

Но, хотя я никогда не использовал их, класс Thread содержит несколько abort_on_exception методы, даже с некоторыми примерами. Они должны делать то, что вы хотите.
http://corelib.rubyonrails.org/classes/Thread.html

ответил Nikita Rybak 2 PM000000110000005731 2010, 23:13:57
0

Добавив ответ Никиты, вы также можете вызвать исключение, вызвав thread.join в созданной вами теме.

Если вы запустите программу с установленным флагом отладки (ruby -d), то вы также прервете при возникновении необработанного исключения в потоке.

ответил Andrew Grimm 3 AM00000030000005031 2010, 03:55:50

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132