Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ruby中的异常处理问题_Ruby - Fatal编程技术网

ruby中的异常处理问题

ruby中的异常处理问题,ruby,Ruby,在下面的代码中,我希望处理异常。如果未找到msg[0]我必须在rescue中捕获该异常消息msg[2],如果找到,则将成功消息msg[1] puts "Verifying Home Page" def verifyHomepage(*args) begin args.each do |msg| page.find(msg[0]) puts msg[1] rescue puts msg[2] end end end verifyHom

在下面的代码中,我希望处理异常。如果未找到
msg[0]
我必须在rescue中捕获该异常消息
msg[2]
,如果找到,则将成功消息
msg[1]

puts "Verifying Home Page"
 def verifyHomepage(*args)
 begin
  args.each do |msg|    
    page.find(msg[0])
    puts msg[1]
    rescue
    puts msg[2]      
  end
end
end
verifyHomepage(['#logoAnchorr', 'logo anchor found', 'Logo anchor not Found'], ['.navbar-inner', 'Header Bar found', 'Header Bar  not Found'])
在上面的代码中,我得到了
error sysntax error unexpected keyword rescue expected keyword end
您必须在
块中写入
begin

puts "Verifying Home Page"
def verifyHomepage(*args)  
    args.each do |msg|
      begin
        page.find(msg[0])
        puts msg[1]
      rescue
        puts msg[2]
    end
  end
end
verifyHomepage(['#logoAnchorr', 'logo anchor found', 'Logo anchor not Found'], ['.navbar-inner', 'Header Bar found', 'Header Bar  not Found'])

萨利尔已经给你指出了要修复的地方,没错。现在,您也可以采用以下方法:

puts "Verifying Home Page"

def verifyHomepage(*args)
  args.each do |msg|   
    next puts(msg[1]) if page.find(msg[0]) rescue nil  
    puts msg[2]     
  end
end
a = [['#logoAnchorr', 'logo anchor found', 'Logo anchor not Found'], ['.navbar-inner', 'Header Bar found', 'Header Bar  not Found']]
verifyHomepage(*a)
输出:


是因为
rescue
args.each
块中吗?在
rescue
语句之后有一个
end
是一个好主意吗?是的,我同意@sumea
Verifying Home Page
Logo anchor not Found
Header Bar  not Found