Una excepción es un evento no deseado o inesperado que ocurre durante la ejecución de un programa, es decir, en tiempo de ejecución, que interrumpe el flujo normal de las instrucciones del programa. En Ruby, los descendientes de una clase Exception se utilizan para interactuar entre los métodos de elevación y las declaraciones de rescate en los bloques de inicio o finalización.
Los objetos de excepción contienen información sobre la excepción, como su tipo, una string descriptiva opcional e información opcional.
Las subclases incorporadas de Ruby Exception son:
Métodos de clase de excepción
- excepción: este método se utiliza para crear y devolver un nuevo objeto de excepción.
Exception.exception(message)
- new : este método crea y devuelve un nuevo objeto de excepción, configurando opcionalmente mensaje a mensaje.
Exception.new(message)
Ruby
# Ruby program to illustrate # use of new method # creating the customized class # inherited from StandardError class MyException < StandardError attr_reader :myobject def initialize(myobject) @myobject = myobject end end begin # Using new method # to create an object of # the given exception raise MyException.new("My object"), "This is custome class" rescue MyException => e puts e.message puts e.myobject end
- Producción:
This is custome Exception My object
-
- backtrace: este método devuelve cualquier backtrace relacionado con exc . El backtrace es la array de strings que contiene filename:line:in method o filename:line .
- backtrace: este método devuelve cualquier backtrace relacionado con exc . El backtrace es la array de strings que contiene filename:line:in method o filename:line .
exc.backtrace
- Ejemplo:
Ruby
# Ruby program to illustrate # use of backtrace method # defining method def a1 # raise exception raise "OOPs! exception raise" end # defining method def a2 # calling method a1 a1() end begin # calling method a2 a2() # rescue exception rescue => a_Details # print the backtrace details # related with exception puts a_Details.backtrace.join("\n") end
- Producción:
(repl):8:in `a1' (repl):14:in `a2' (repl):19:in `<main>' /run_dir/repl.rb:38:in `eval' /run_dir/repl.rb:38:in `run' /run_dir/repl.rb:54:in `handle_eval' /run_dir/repl.rb:170:in `start' /run_dir/repl.rb:177:in `start' /run_dir/repl.rb:181:in `<main>' /pre>
- excepción: sin argumento, o si el argumento es el mismo que el receptor, devuelve el receptor. De lo contrario, cree un nuevo objeto de excepción de la misma clase que el receptor, pero con un mensaje igual a string.to_str .
exc.exception(message)
- mensaje: este método devuelve un mensaje relacionado con exc .
exc.message
- set_backtrace: este método establece la información de rastreo inverso relacionada con exc . El argumento de esto debe ser una array de objetos String en el formato que se describe en Exception#backtrace .
exc.set_backtrace(array)
- to_s: este método devuelve el mensaje relacionado con exc o devuelve el nombre de la excepción si no se ha establecido ningún mensaje.
exc.to_s
- Ejemplo:
Ruby
# Ruby program to illustrate # use of to_s method begin # raise exception raise "Ruby Exception" # rescue exception rescue Exception => a # print message puts a.to_s end
- Producción:
Ruby Exception
- inspeccionar: este método devuelve el nombre y el mensaje de la clase de excepción.
exc.inspect
- causa: este método devuelve la excepción anterior en el momento en que exc aumenta.
- ==: este método devuelve verdadero si el objeto y exc comparten la misma clase, mensaje y seguimiento. De lo contrario, devuelve falso.
exc==obj
Publicación traducida automáticamente
Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA