以下代码在ruby2.0和2.1之间的行为有所不同:
require 'timeout'
def scp
begin
puts "In begin"
sleep 10
rescue Exception => e
puts "Exception found: #{e}"
else
puts "No exception found"
ensure
puts "In ensure"
end
end
Timeout::timeout(1) do
sc
以下是使用Ruby计算Excel公式的代码。这里只显示了SUM函数。我用两种语言Ruby和Python实现了这个函数 Python 3.10.0 def SUM(a,b):
return a+b
for i in range(int(input())):
s=input()
if s[0]!="=":
print("INVALID")
else:
try:
print(eval(s.replace('=','')))
exc
我正在使用Ruby中的Mechanize将表单发布到一个站点以获取数据。偶尔,我会收到错误消息
too many connection resets (due to Operation timed out - Errno::ETIMEDOUT) after 13 requests on 34234234234242, last used 20.518373 seconds ago
这将使服务器崩溃。我想捕获这个错误并处理它(通过稍后重试)。
我试过了
begin
postForm(form)
rescue Errno::ETIMEDOUT
puts "=====
上下文:我正在使用Ruby用mysql2编写一个简单的动态查询。
企图:
#!/usr/local/bin/ruby
require "mysql2"
puts "Please enter the title of this Report:"
title = gets.chomp
Mysql2::Client.default_query_options.merge!(:as => :array)
puts "Please enter the host, username, password and database in order:"
我正在使用Ruby脚本调用系统命令,如下所示
puts "Reached point #1"
begin
system("sh my_shell_script.sh")
rescue StandardError => e
puts "There was an error"
end
puts "Reached point #2"
我故意在shell脚本中添加了一个错误,这样它就会失败(即我将"echo“拼写为"eho")。我希望我的Ruby脚本会输出它到达了标记#1,然后修复错误以显示
我试图从require‘:no file to load in ruby`中解救出来,以便提示用户指定-I标志,以防他忘记这样做。基本上代码看起来像这样:
begin
require 'someFile.rb'
rescue
puts "someFile.rb was not found, have you"
puts "forgotten to specify the -I flag?"
exit
end
我曾期望在找不到someFile.rb的情况下rescue部分会接管执行,但我的假设是错误的。
我试图了解Ruby中的类之间是如何发生错误的。到目前为止,我有这样的看法:
class User
def charge
puts "charging order soon"
raise RuntimeError.new("This is a runtime error")
rescue ArgumentError
puts "should never gets here"
end
end
class Runner
def run
begin
User.new.charge
re
运行bundle install时有时会出错
Bundler::GemspecError: Could not read gem at /path/to/cache/gem It may be corrupted
我有一个web URL过滤器,它似乎阻止了下载创业板的最初尝试(如果我删除了有问题的缓存文件并再次运行,它就会工作)。此外,缓存文件的内容是来自web URL筛选页面的html。
我不想删除缓存文件并重新运行,如果发生这种情况,我想让bundler自动重新运行。
我考虑过从Ruby脚本运行包,但我似乎无法捕捉到错误。
我需要自动化构建我的项目在码头。
begin
puts
我试图用以下代码检查system命令是否存在:
require 'open3'
Open3.popen3('non-existing command') do |stdin, stdout, stderr, thread|
exit_error = stderr.readlines
if exit_error["No such file or directory"]
puts "command not found"
end
end
但是,它只是带着下面的错误消息崩溃,没有继续:
/home/pavel/.rv
我试图使用ruby (1.8.6)中的"open-uri“来处理链接列表中的内容,但当一个链接断开或需要身份验证时,当我收到错误消息时,就会发生不好的事情:
open-uri.rb:277:in `open_http': 404 Not Found (OpenURI::HTTPError)
from C:/tools/Ruby/lib/ruby/1.8/open-uri.rb:616:in `buffer_open'
from C:/tools/Ruby/lib/ruby/1.8/open-uri.rb:164:in `open_loop'
from C:/to
我试图理解Ruby异常的语法。
我找到了这个例子:
begin
puts "Running with b=#{ b }"
exception_if(b)
puts "After possible exception"
rescue ArgumentError => e
puts "An error occured: #{ e }!"
ensure
puts "Always excuted, no matter what."
end
来源:
"ArgumentErro
class MyKlass
include ActiveSupport::Rescuable
rescue_from Exception do
return "rescued"
end
#other stuff
end
MyKlass是纯ruby对象,但定义在Rails应用程序中。
如果我试图在rails控制台中调用MyKlass实例,然后应用到它的方法中,这个方法肯定会引发异常,那么除了预期将被拯救的错误之外,什么也不会发生。