草庐IT

java - @ControllerAdvice 异常处理与@ResponseStatus 一起

全部标签

ruby-on-rails - 可以在 Thread::handle_interrupt block 之外异步处理 ruby​​ 异常吗?

乍一看,我以为新的ruby​​2.0Thread.handle_interrupt会解决我所有的异步中断问题,但除非我弄错了,否则我无法让它做我想做的事(我的问题在最后和标题中)。从文档中,我可以看到如何避免在某个block中接收中断,将它们推迟到另一个block。这是一个示例程序:duration=ARGV.shift.to_it=Thread.newdoThread.handle_interrupt(RuntimeError=>:never)do5.times{putc'-';sleep1}Thread.handle_interrupt(RuntimeError=>:immedia

Ruby 堆栈级别太深异常不是来自递归无限循环

编辑:(已解决)实际上它可能是因为无限循环而引发的我正在编码,在添加一个方法后我得到了这个:user_name@the_computer:/media/ECC3-C3B0/Prog/mts/src/mts$raketest--trace**Invoketest(first_time)**Executetest/home/user_name/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:stackleveltoodeep(SystemStackError)rakeabo

ruby - 如何测试 RSpec 中的信号处理,特别是 SIGTERM 的处理?

Heroku可能会出于各种原因向您的应用程序发送SIGTERM,因此我创建了一个处理程序来处理一些清理工作,以防发生这种情况。一些谷歌搜索没有给出任何关于如何在RSpec中测试它的答案或示例。这是基本代码:Signal.trap('TERM')docleanupenddefcleanupputs"doingsomecleanupstuff"...exitend当程序收到SIGTERM时,测试调用此清理方法的最佳方法是什么? 最佳答案 使用Process.kill'TERM',0将信号发送到RSpec并测试调用处理程序。确实,如果信号

ruby - 在 JRuby 中,如何确定导致 java.lang.ThreadDeath 的原因?

在为一些与JRuby中的临时文件交互的代码运行单元测试时,我有时会得到以下信息:Exception:java.lang.ThreadDeaththrownfromtheUncaughtExceptionHandlerinthread"Thread-6395"它似乎没有引起任何问题,但这是怎么回事,我如何确定它发生在哪里?我尝试打开-d,但这并没有给我异常的堆栈跟踪。 最佳答案 FWIW:这可能与http://jira.codehaus.org/browse/JRUBY-7074有关.我偶尔会在不使用反引号但调用系统的JRuby程序中

ruby-on-rails - 处理身份登录的 OmniAuth::Error (invalid_credentials)

我使用OmniAuthIdentity进行正常登录。Rails3.2.3和Ruby1.9.3p194。目前,当现有用户尝试使用无效凭据登录时,我会收到以下错误:StartedPOST"/auth/identity/callback"for127.0.0.1at2012-07-1217:00:03-0400(identity)Callbackphaseinitiated.IdentityLoad(0.1ms)SELECT"identities".*FROM"identities"WHERE"identities"."email"='test'LIMIT1(identity)Authent

ruby - 如何将 headless Chrome 与 capybara 和 Selenium 一起使用

Chrome版本:59.0.3071.104使用Cucumber、Capybara、Selenium通过HeadlessChrome实现自动化测试。features/support/env.rbrequire'rubygems'require'capybara/cucumber'Capybara.register_driver:selenium_chromedo|app|Capybara::Selenium::Driver.new(app,:browser=>:chrome,args:['headless'])endCapybara.default_driver=:selenium_c

ruby-on-rails - spork 可以处理 rake 任务吗?

Rake任务遇到与运行测试相同的问题:Rails启动过程在任务运行之前需要很长时间。有没有办法将spork和rake整合在一起? 最佳答案 您可以使用irakegem,它可以从控制台执行rake任务。将此添加到Gemfile:gem'irake'然后捆绑并启动控制台$bundleinstall$railsconsole...并等待Rails环境加载(仅一次)。然后你可以这样做:rake"db:migrate"如果你想列出任务,你可以:Rake::Task.tasks.each{|t|putst.name};nil

ruby-on-rails - 如何以一种 rails 形式处理多个模型?

我有以下型号classSurvey我的Controller:defnew@survey=Survey.newsurvey_section=@survey.survey_sections.buildsurvey_section.questions.buildenddefcreate@survey=Survey.new(survey_params)if@survey.saveredirect_to@survey,notice:'Super'elserender'new'endenddefsurvey_paramsparams.require(:survey).permit(:title,:

ruby - 如何使用消息和回溯手动创建异常

如何使用回溯创建异常?我知道我们可以做这样的事情来实现这一目标:beginraiseStandardError,"message"rescueStandardError=>exceptionexception.backtraceend或者exception=StandardError.new("message")exception.set_backtrace(caller)但我正在寻找这样的东西:exception=StandardError.new("message",backtrace:caller)有没有一种方法可以使用自定义消息和回溯来初始化异常?

ruby - 如何将带回溯的 ruby​​ 异常格式化为字符串

我有一个异常e,我想将它转换成一个与标准ruby​​输出完全相同的字符串在未捕获异常时在stderr上。初始代码给出了错误的堆栈跟踪顺序,并且缩进不正确。与其编写我自己的代码,我更希望看到一些“oneliner”。你是怎么做到的? 最佳答案 这将是相同的。puts"#{$@.first}:#{$!.message}(#{$!.class})",$@.drop(1).map{|s|"\t#{s}"}或者,使用e:puts"#{e.backtrace.first}:#{e.message}(#{e.class})",e.backtrac