3
나는 이벤트 머신 1.0.0을 루비 1.9.3과 함께 사용하고있다. 이제 예외가 발생하면 무시됩니다. 반응기가 계속 작동하고 아무 것도 출력되지 않습니다. 물론 예외를 잡는 커스텀 rescue
커맨드가 없습니다.이벤트 머신에서 예외를 잡는 방법
이것은 원자로를 시작하는 방법입니다. 하지만 내 error_handler
는
EventMachine::run do
EventMachine.error_handler do |e|
$stderr.puts "Exception during event: #{e.message} (#{e.class})"
$stderr.puts (e.backtrace || [])[0..10].join("\n")
end
puts "Starting ftp server on port 21"
EventMachine::start_server("0.0.0.0", 21, self)
end
eventmachine에 대해서는 잘 모르겠지만 작성한 하위 스레드에서 실행되는 경우가 있습니다. 그리고 하위 스레드에서 발생한 오류는 주 스레드에서 보이지 않습니다. 그것을 볼 수 있습니다. 그 스레드 내에서 오류를'구조 '하고 오류를 처리해야합니다. 어쩌면 당신은'EventMachine.run do' 내부에'begin' ...'rescue' ...'end'를 넣을 수 있습니다. . 끝. 그리고 당신이 전자를 잡을 수 있는지 보아라. 거기에 반란군. – sawa
유사한 질문 찾기 : http://stackoverflow.com/questions/8416349/how-do-you-catch-exceptions-in-an-eventmachine-implementation – Shtirlic