utilizar try tipos sintaxis imprimir funciona excepciones error ejemplos diferentes como archivos python exception errno ioerror

try - Manejo de excepciones de Python



imprimir error python (4)

C tiene perror y errno, que imprimen y almacenan el último error encontrado. Esto es conveniente cuando se hace el archivo io ya que no tengo que fstat () todos los archivos que fallan como argumento para fopen () para presentar al usuario una razón por la cual falló la llamada.

Me preguntaba cuál es la forma correcta de capturar errno cuando se maneja con gracia la excepción IOError en python.

In [1]: fp = open("/notthere") --------------------------------------------------------------------------- IOError Traceback (most recent call last) /home/mugen/ in () IOError: [Errno 2] No such file or directory: ''/notthere'' In [2]: fp = open("test/testfile") --------------------------------------------------------------------------- IOError Traceback (most recent call last) /home/mugen/ in () IOError: [Errno 13] Permission denied: ''test/testfile'' In [5]: try: ...: fp = open("nothere") ...: except IOError: ...: print "This failed for some reason..." ...: ...: This failed for some reason...


Así es como puedes hacerlo. También vea el módulo errno y la función os.strerror para algunas utilidades.

import os, errno try: f = open(''asdfasdf'', ''r'') except IOError as ioex: print ''errno:'', ioex.errno print ''err code:'', errno.errorcode[ioex.errno] print ''err message:'', os.strerror(ioex.errno)

Para obtener más información sobre los atributos de IOError, consulte la clase base EnvironmentError:


También se pueden probar diferentes excepciones en la misma cláusula ''excepto'', por ejemplo,

try: serial_port.open() except (AttributeError, SerialException) as e: print(''cannot open serial port: {}''.format(e))


La excepción tiene un atributo errno :

try: fp = open("nothere") except IOError as e: print(e.errno) print(e)


try: fp = open("nothere") except IOError as err: print err.errno print err.strerror