Cómo controlar las excepciones en Ruby

by admin

De vez en cuando, un método se encontrará con un error, en cuyo momento se producirá un error y le dirá al respecto a través de un mecanismo llamado una excepción. En Ruby, cuando salvedades por un método que encuentra un error, tendrá que rescatar a su programa y controlar el error.

Instrucciones

Iniciar una excepción

1 Escribir algo de código que se producirá una excepción, mediante la instrucción aumento. En Ruby, la sentencia raise se detendrá la ejecución del método, y luego descansar el programa.

2 Encerrar la llamada a este método en un comunicado de rescate juego. De lo contrario, el programa terminará y un mensaje de error se mostrará en el terminal. El siguiente ejemplo muestra una función de promedio, como la que se encuentra en el software de calificaciones.

3 Aquí, todos los resultados de las pruebas se promedian. Si el resultado es superior al 100%, no hay más remedio que lanzar una excepción porque alguien ha engañado:
def average(num1, num2, num3)
av = (num1 + num2 + num3) / 3.0
if av > 100
raise "Someone cheated, average is #{av}"
else
return av
end
end

Controlar la excepción

4 Escribir la sentencia de rescate, llamando al método promedio encerrado en un bloque con un comunicado de rescate.

5 Comience el bloque con "comenzar". Puede tener cualquier número de declaraciones de "rescate", y termina con la palabra clave "fin". La declaración de rescate tiene una cláusula tipo así: un tipo seguida de => y un nombre de variable. Excluyendo el tipo permitirá a la declaración de rescate para coger todas las excepciones producidas.

6 Cuando se ejecuta el comando de rescate, el valor que se planteó se asigna a "e". Puede haber varias instrucciones de rescate con múltiples tipos de manejar diferentes tipos de errores:
begin
average(98, 92, 130)rescue => e
puts "I caught someone cheating!"
puts "The error message was this: #{e}"
end

Escribe Else y Asegurar Declaraciones

7 Crear una declaración de garantizar, además de la declaración de rescate. La declaración garantizar siempre es ejecutado cuando se termina el bloque. Independientemente de cómo el bloque de salir, si hubo o no una excepción planteó, o incluso si no para rescatar a la excepción en sí, la declaración garantizar siempre se ejecuta. La sentencia else se ejecuta solamente si no hay excepciones.

8 Aquí desea asegurarse de que el libro de calificaciones se cierra, por lo que se asegura close_grade libro se llama:
begin
average(98, 92, 130)rescue => e
puts "I caught someone cheating!"
puts "The error message was this: #{e}">ensure
close_gradebook
end

9 Escribe una sentencia else. Si no hubo excepciones, la sentencia else se felicita al estudiante por no hacer trampa:
else
puts "Good job, and you didn't even cheat!"

Consejos y advertencias

  • El bloque es un trozo de código que se ejecuta cada vez que se ejecuta el bucle.
ETIQUETA: