- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Process.sleep(7000) end) IO.insp-6ren">
我有以下代码:
try do
IO.inspect("start task")
t = Task.async(fn -> Process.sleep(7000) end)
IO.inspect("start awaiting")
Task.await(t)
rescue
e ->
IO.inspect("catch error")
IO.inspect(e)
after
IO.inspect("after")
end
IO.inspect("success ending")
这将打印:
"start task"
"start awaiting"
"after"
00:00:03.510 [info] Application my_app exited: exited in: MyApp.Application.start(:normal, [])
** (EXIT) exited in: Task.await(%Task{owner: #PID<0.497.0>, pid: #PID<0.498.0>, ref: #Reference<0.3923892342.570949633.190577>}, 5000)
** (EXIT) time out
所以 await 使我的调用者进程崩溃,并且我无法通过使用“after” block 来挽救错误。我不明白如何保护我的调用者进程免受任务超时错误的影响。
最佳答案
您将希望在这个特定实例中使用 try/catch
。
try do
IO.inspect("start task")
t = Task.async(fn -> Process.sleep(7000) end)
IO.inspect("start awaiting")
Task.await(t)
catch
:exit, _ -> IO.puts "caught exit"
after
IO.inspect("after")
end
IO.inspect("success ending")
"start task"
"start awaiting"
caught exit
"after"
"success ending"
两者之间的差异可以在不同的地方找到。 This question可能是一个好的开始。
关于Elixir:救援/捕获任务超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47947445/
我有以下代码: try do IO.inspect("start task") t = Task.async(fn -> Process.sleep(7000) end) IO.insp
问题与 radis-rb gem 有关。 异常没有被我的救援 block 捕捉到,我的应用程序崩溃了。 我的代码: begin redis = Redis.new puts "WTF?" re
我的 Rakefile 中有许多文件任务,它们看起来像 file 'task1' => 'dep' do sh "some command" end 还有 task :start => :next
我有一个自定义 Rakefile,它调用不同的 file 任务。有时预期的文件不存在,并且 rake 抛出 RuntimeError 并失败。但是,我想在它失败之前做一些事情。那么有什么方法可以挽救
这对我来说似乎没问题,我找不到任何其他说明的文件,但我希望它得到验证。我有一段代码可能会失败,无论出于何种原因,如果它确实失败,请确保在它之后保护它,然后无论发生什么都需要执行一些代码。这似乎需要一个
使用 Action 邮件发送电子邮件时,我们遇到了生产问题。 NameError undefined local variable or method `to_ary' for # Did you m
我有这个创建方法: def create ... grid = Tag.find_by_id(story[:tag_id]) or raise GridNotFoundError
我正在学习 ZetCode 上非常棒的 SLite & Ruby 教程并遇到了一个愚蠢的问题。这到底是怎么回事? rescue SQLite3::Exception => e puts "Ex
如何捕获 ctrl-break 组合键引发的异常?我在 Windows 上运行一个 ruby 程序(在 cmd.exe 内),我用这样的东西捕获 ctrl-c : rescue Interrupt
背景 两者 try/rescue和 try/catch是 Elixir 中的错误处理技术。根据 corresponding chapter在介绍指南中。 Errors can be rescued u
我在 Rails 应用程序上安装了 Airbrake。但是,我还想在 500 发生时执行一些其他操作。如何在不干扰 Airbrake 的情况下挽救 500 个错误? 最佳答案 在 Applicatio
我有一个与这段代码相当的情况: i=0 def add_one(i) i+=1 puts "FUNCTION:#{i}" end begin puts "BEGIN:#{i}" rai
我一直在尝试在 Rails 应用程序中实现以下功能,但它似乎什么也没做: rescue Twilio::REST::RequestError => e puts e.message 我注意到它
用户只能编辑自己的帖子,因此我使用以下代码来检查用户是否可以进入编辑表单: def edit @post = Load.find(:first, :conditions => { :use
在尝试解析数组、AR 模型导入等时,CSV 文件有问题似乎是一个常见问题。除了在 MS Excel 中打开并另存为 之外,我还没有找到有效的解决方案> 每天(还不够好!)。 在一个 60,000 行的
我最近使用 Debian Wheezy 双启动了一台 Windows PC。安装顺利,没有错误,但是当我启动到 Debian 时,我立即收到 GRUB 救援: Welcome to GRUB! err
我已按照说明安装 resque,但现在当我尝试使用此命令生成 worker 时,出现连接错误: $ QUEUE=mailer rake environment resque:work --trace
我是一名优秀的程序员,十分优秀!