Sch*_*ems 24 ruby error-handling ruby-on-rails rescue
我正在使用一些包含在开始 - 救援块中的红宝石代码,但不知怎的,它设法仍然崩溃.
代码块看起来像这样:
# Retrieve messages from server
def get_messages
@connection.select('INBOX')
@connection.uid_search(['ALL']).each do |uid|
msg = @connection.uid_fetch(uid,'RFC822').first.attr['RFC822']
begin
process_message(msg)
add_to_processed_folder(uid) if @processed_folder
rescue
handle_bogus_message(msg)
end
# Mark message as deleted
@connection.uid_store(uid, "+FLAGS", [:Seen, :Deleted])
end
end
Run Code Online (Sandbox Code Playgroud)
鉴于此代码,我假设如果process_message或add_to_processed_folder无法执行,那么rescue将启动并调用handle_bogus_message.话虽这么说,我在生产环境中运行此代码,有时当我"获取"电子邮件消息(这是从rake任务运行)时,它会死于SyntaxError.
一看错误消息退房http://pastie.org/1028479 并不算process_message,它指的是相同的process_message以上.是否有任何理由为什么开始 - 救援不会抓住这个例外?
| 归档时间: |
|
| 查看次数: |
16522 次 |
| 最近记录: |