Si ejecutamos el siguiente programa se producirá una execpción debida a la división entre cero.
#!/usr/bin/python
a=10/0;
print a;
Se puede controlar la excepción de la siguiente forma.
#!/usr/bin/python
try:
a=10/0;
print a;
except:
print "Problema dividiendo";
Se pueden tratar los errores por separado.
#!/usr/bin/python
try:
a=10/0;
print a;
except ZeroDivisionError:
print "El divisor es cero";
except:
print "Otro error";
Se puede ejecutar código si no se produce la excepción, será lo representado por la cláusula else.
#!/usr/bin/python
try:
a=10/0;
except ZeroDivisionError:
print "El divisor es cero";
else:
print a;
O incluso se puede ejecutar código tanto si se produce la excepción como si no, con la cláusula finally.
#!/usr/bin/python
try:
a=10/0;
except ZeroDivisionError:
print "El divisor es cero";
finally:
print "Necesitamos seguir aunque cometamos errores";
Podemos también definir nuestras propias excepciones, para ello debemos crear una clase que herede de Exception. La excepción se lanzará con raise.
#!/usr/bin/python
class MiExcepcion(Exception):
def __init__(self, valor):
self.valor = valor
def __str__(self):
return str(self.valor) + ": se ha cometido al intentar realizar la operacion"
var=2;
if var < 10:
raise MiExcepcion("Valor enano");
Por supuesto las excepciones que lancemos también se pueden capturar y tratar.
#!/usr/bin/python
class MiExcepcion(Exception):
def __init__(self, valor):
self.valor = valor
def __str__(self):
return str(self.valor) + ": se ha cometido al intentar realizar la operacion"
try:
var=2;
if var < 10:
raise MiExcepcion("Valor enano");
except:
print "Tranquilidad que lo podemos solucionar todavia";
0 comentarios:
Publicar un comentario