try y manejo de errores en python
Cuando sucede un problema que tal vez no lo esperamos debido a que el usuario puede ingresar otro tipo de información, se utiliza el try, así mismo con la palabra reservada raise puedes personalizar tus propios errores:
def area_tri(base, altura):
if base <=0 or altura <=0:
raise ValueError('Debes ingesar valores mayores a cero')#Crea un tipo de error nuevo
return (base*altura)/0
Salida por consola:
area_tri(-1,9)
Traceback (most recent call last):
File "<ipython-input-2-38fe634892d5>", line 1, in <module>
area_tri(-1,9)
File "<ipython-input-1-a4c6311ebd55>", line 3, in area_tri
raise ValueError('Debes ingesar valores mayores a cero')#Crea un tipo de error nuevo
ValueError: Debes ingresar valores mayores a cero
En este caso el usuario ingresó valores negativos o menores a 0 y el mensaje personalizado fue: Debes ingresar valores mayores a cero
try:
base = float(input('Base: '))
altura = float(input ('Altura: '))
area = area_tri(base,altura)
except ValueError as e1:#el value error se ejecuta para decir que tipo de error es
print(f'Existe un error de tipo\n"{e1}"')
except ZeroDivisionError as e2:
print(f'Existe un error de tipo\n"{e2}"')
else: #se ejecuta cuando el tri esta bien
print(f'El área del triangulo es: {area}')
finally: #se ejecuta con el error o sin el error
print('Se ha terminando el programa')
def area_tri(base, altura):
if base <=0 or altura <=0:
raise ValueError('Debes ingesar valores mayores a cero')#Crea un tipo de error nuevo
return (base*altura)/0
Salida por consola:
area_tri(-1,9)
Traceback (most recent call last):
File "<ipython-input-2-38fe634892d5>", line 1, in <module>
area_tri(-1,9)
File "<ipython-input-1-a4c6311ebd55>", line 3, in area_tri
raise ValueError('Debes ingesar valores mayores a cero')#Crea un tipo de error nuevo
ValueError: Debes ingresar valores mayores a cero
En este caso el usuario ingresó valores negativos o menores a 0 y el mensaje personalizado fue: Debes ingresar valores mayores a cero
try:
base = float(input('Base: '))
altura = float(input ('Altura: '))
area = area_tri(base,altura)
except ValueError as e1:#el value error se ejecuta para decir que tipo de error es
print(f'Existe un error de tipo\n"{e1}"')
except ZeroDivisionError as e2:
print(f'Existe un error de tipo\n"{e2}"')
else: #se ejecuta cuando el tri esta bien
print(f'El área del triangulo es: {area}')
finally: #se ejecuta con el error o sin el error
print('Se ha terminando el programa')
Comentarios
Publicar un comentario