Tôi đang cố gắng mã hóa một máy khách hai luồng bằng ruby, một luồng đọc dữ liệu từ một ổ cắm và in ra, luồng kia đọc dữ liệu cục bộ và gửi nó đến máy chủ từ xa. Vấn đề tôi thấy là nó trông giống như Ruby không thể nắm bắt được các lỗi trong một chủ đề, đây là một ví dụ:Làm thế nào để làm cho Ruby nắm bắt lỗi cú pháp trong các chủ đề
#! /usr/bin/ruby
Thread.new {
loop {
$stdout.puts "hi"
abc.puts ef
sleep 1
}
}
loop {
sleep 1
}
Rõ ràng, ngoài các chủ đề nếu tôi gõ abc.puts ef
mã sẽ không bao giờ chạy từ Ruby sẽ báo cáo "biến không xác định abc ". Tuy nhiên, nếu nó nằm trong một chuỗi, không có báo cáo lỗi. Câu hỏi của tôi là, làm thế nào để Ruby bắt lỗi như thế này? Hoặc ít nhất, báo cáo một cái gì đó là sai trong một sợi?
'SyntaxError' không được nâng lên, nhưng' NameError'. – falsetru