ATIX20

Page 56

obj = ObjetoCaro('obj') p = weakref.proxy(obj) print 'ANTES:', p.name obj = None print 'DESPUÉS:', p.name $ python exceptions_ReferenceError.py ANTES: obj (Eliminando <__main__.ExpensiveObject object at 0x100d9e950>) DESPUÉS: Traceback (most recent call last): File "exceptions_ReferenceError.py", line 26, in <module> print 'DESPUÉS:', p.name ReferenceError: weakly-referenced object no longer exists

RuntimeError Una excepción RuntimeError se usa cuando no se aplica otra excepción más específica. El intérprete no produce está excepción muy a menudo, pero algún código de usuario lo hace.

StopIteration Cuando un iterador ha terminado, su método next() produce StopIteration. Esta excepción no es considerada un error.

SyntaxError Un SyntaxError ocurre siempre que el analizador (parser) encuentra código fuente que no entiende. Ésto puede ser mientras importa un módulo, invoca exec o ejecuta eval(). Los atributos de la excepción pueden ser usados para encontrar exactamente qué parte del texto de entrada ocasionó la excepción. try: print eval('five times three') except SyntaxError, err: print 'Syntax error %s (%s-%s): %s' % \ (err.filename, err.lineno, err.offset, err.text) print err $ python exceptions_SyntaxError.py Syntax error <string> (1-10): five times three invalid syntax (<string>, line 1)

SystemError Cuando ocurre un error en el propio intérprete y hay cierta oportunidad de continuar la ejecución con éxito se produce un SystemError. SystemErrors probablemente indican un error en el intérprete y deberían ser reportados al mantenedor.


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