try - ¿Cómo rescato de un ''requerimiento'': no hay tal archivo para cargar en ruby?
standarderror ruby (2)
Estoy tratando de rescatar de un `` requerir '': no hay tal archivo para cargar en ruby` para indicarle al usuario que especifique el indicador -I en caso de que se haya olvidado de hacerlo. Básicamente, el código se ve así:
begin
require ''someFile.rb''
rescue
puts "someFile.rb was not found, have you"
puts "forgotten to specify the -I flag?"
exit
end
Esperaba que la parte de rescue
hiciera cargo de la ejecución en caso de que no se encontrara someFile.rb
, pero mi suposición era incorrecta.
Debe definir explícitamente de qué error quiere rescatar.
begin
require ''someFile.rb''
rescue LoadError
puts "someFile.rb was not found, have you"
puts "forgotten to specify the -I flag?"
exit
end
rescatar sin argumentos rescata solo StandardError s. LoadError (que se genera mediante un archivo no encontrado) no es un StandardError sino un ScriptError (consulte http://blog.nicksieger.com/articles/2006/09/06/rubys-exception-hierarchy ). Por lo tanto, debe rescatar LoadError explícitamente, como lo indicó MBO.