ATIX20

Page 54

class ClaseBase(object): """Define la interfaz""" def __init__(self): super(ClaseBase, self).__init__() def haz_algo(self): """La interfaz, sin implementación""" raise NotImplementedError(self.__class__.__name__ + '.haz_algo') class SubClase(ClaseBase): """Implementa la interfaz""" def haz_algo(self): """hace algo de verdad""" print self.__class__.__name__ + ' haciendo algo!' SubClass().haz_algo() BaseClass().haz_algo() $ python exceptions_NotImplementedError.py SubClase haciendo algo! Traceback (most recent call last): File "exceptions_NotImplementedError.py", line 27, in <module> ClaseBase().haz_algo() File "exceptions_NotImplementedError.py", line 18, in do_something raise NotImplementedError(self.__class__.__name__ + '.haz_algo') NotImplementedError: ClaseBase.haz_algo

OSError OSError sirve como clase de errores para el módulo os, se produce cuando una operación

específica al sistema operativo genera un error. import os for i in range(10): print i, os.ttyname(i) $ python exceptions_OSError.py 0 /dev/pts/0 1 /dev/pts/0 2 /dev/pts/0 3 Traceback (most recent call last): File "exceptions_OSError.py", line 15, in <module> print i, os.ttyname(i) OSError: [Errno 9] Bad file descriptor

OverflowError Cuando una operación aritmética supera los límites del tipo de variable, un OverflowError se produce. Enteros largos asignan más espacio a manera que el valor crece, así que terminan produciendo MemoryError. El manejo de excepciones de punto flotante no está estandarizado, así que no son controlados. Enteros regulares son convertidos en enteros largos según sea necesario.


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.