Manejo de excepciones
Clase 15 de 34 • Curso de Ruby 2017
Contenido del curso
Clase 15 de 34 • Curso de Ruby 2017
Contenido del curso
Nathaly Stefani Riaño Bejarano
Fernando Espinoza
Valeria Rodriguez Rodriguez
Fernando Espinoza
Carlos Fabian Hernandez Pacheco
David Toca
Diego Forero
Raise
def porcentaje(a, b) raise TypeError, 'El 1er argumento no es un número' if !a.is_a? Numeric raise TypeError, 'El 2do argumento no es un número' if !b.is_a? Numeric (a * 100.0) / b end puts porcentaje('10', 50)
Rescue
a = 1 b = '2' begin c = a + b rescue puts "No se puede sumar #{a.class} con #{b.class}" else puts c end
Ensure
def fullname(first_name, last_name) first_name + ' ' + last_name rescue => error puts "El error es: #{error.message}" ensure return last_name end puts fullname(54, 'Simpson')
Estoy usando el IDE RubyMine de jetBrains y me saltó un warning del linter cuando escribí
raise TypeError, 'el 1er argumento no es un numero' if !a.is_a? Numeric
y el IDE me lo corrigió a
raise TypeError, 'el segundo argumento no es un numero' unless b.is_a? Numeric
Esto asumo que es equivalente, pero es que mas recomendado usar?
Unless ejecuta una condición si es falsa, es equivalente a usar un if y negar su condición
Pero que es mas recomendado usar?
Kattya no se ve lo que escribiste en el if.
En que parte del video te refieres?
@bian251091 lo que escribe es
if a.is_a? Numeric