Estoy tratando de entender las excepciones en Ruby pero estoy un poco confundido. El tutorial estoy usando dice que si se produce una excepción que no coincide con ninguna de las excepciones señaladas por las declaraciones de rescate, se puede utilizar una "cosa" para cogerlo:Ruby Exceptions - ¿Por qué "else"?
begin
# -
rescue OneTypeOfException
# -
rescue AnotherTypeOfException
# -
else
# Other exceptions
ensure
# Always will be executed
end
Sin embargo, también vi más tarde en el tutorial de "rescate" se utilizan sin excepción especificada:
begin
file = open("/unexistant_file")
if file
puts "File opened successfully"
end
rescue
file = STDIN
end
print file, "==", STDIN, "\n"
Si usted puede hacer esto, entonces hacer yo jamás necesidad de usar otro sitio? ¿O puedo usar un rescate genérico al final como este?
begin
# -
rescue OneTypeOfException
# -
rescue AnotherTypeOfException
# -
rescue
# Other exceptions
ensure
# Always will be executed
end
¿Cuál es el tutorial, así que sé que no recomendaría? –
@AndrewGrimm Después de buscar en Google, creo que el tutorial que el asker estaba siguiendo era http://www.tutorialspoint.com/ruby/ruby_exceptions.htm.Bonificación WTF: el autor de ese tutorial parece haber plagiado el primer ejemplo de http://rubylearning.com/satishtalim/ruby_exceptions.html (donde ya era incorrecto), pero lo empeoró aún más atornillando la sangría de los comentarios . Y sí, creo que sería prudente alejar a la gente de él: ¡qué gran combinación de incompetencia * y * deshonestidad en exhibición! –