En ocasiones, 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 , se le han rescatar a su programa y manejar el error. Instrucciones
lanzar una excepción
1
Escribir código que producirá una excepción , con la instrucción raise . En Ruby, la sentencia raise se detendrá la ejecución del método , y luego descansar el programa.
2
Incluya la llamada a este método en un comunicado de rescate juego. De lo contrario , el programa va a terminar y un mensaje de error se muestra en el terminal. El siguiente ejemplo muestra una función de promedio , como la que se encuentra en el software de libro de calificaciones .
3
Aquí, se promedian los puntajes de las pruebas . Si el resultado es superior al 100% , no hay más remedio que lanzar una excepción porque alguien ha engañado : normal def ( num1 , num2 , num3 ) av = ( num1 + num2 + num3 ) /3.0if av > Alguien 100raise " engañado , promedio es # { av } " elsereturn avendend
manejar la excepción
4
Escribir la declaración de rescate , llamando al método de la media encerrado en un bloque con una declaración de rescate.
5
Comienza el bloque con " comenzar ". Puede tener cualquier número de declaraciones de "rescate" , y termina con la palabra "fin" . La declaración de rescate tiene una cláusula tipo así : un tipo seguido de = > y un nombre de variable. Excluyendo el tipo permitirá a la declaración de rescate para coger todas las excepciones producidas .
6
Al ejecutar la sentencia de rescate , el valor que se ha planteado es asignado a "e ". No puede haber declaraciones de rescate múltiples con múltiples tipos de manejar diferentes tipos de errores: beginaverage (98, 92 , 130) de rescate = > eputs "Cogí otra trampa! " Pone " El mensaje de error fue: # {e }" end
Escribir Else y asegurar declaraciones
7
Crear una declaración de garantizar , además de la declaración de rescate. La declaración garantizar siempre se ejecuta cuando finaliza el bloque. Independientemente de cómo el bloque de salir , si hubo o no una excepción planteada , o incluso si no logra rescatar a la misma excepción, el garantizar siempre se ejecuta comunicado. La sentencia else sólo se ejecuta si no hay excepciones
8
desea asegurarse de que el libro de calificaciones se cierra , por lo que se asegura close_grade libro se llama : . Beginaverage (98, 92 , 130) rescate = > eputs "Cogí otra trampa! " pone " El mensaje de error fue: # { e} "> ensureclose_gradebookend
9
Escribir una declaración más. Si no existieran excepciones, la sentencia else se felicite al estudiante por no hacer trampas : elseputs " Buen trabajo, y usted ni siquiera se engañe ! "