Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> python

Dominando Errores y Excepciones Integradas en Python

Errores y Excepciones Integradas en Python

Descubre cómo Python señala problemas, la diferencia entre errores de sintaxis y de ejecución, y cómo manejar excepciones integradas con confianza.

Video: Manejo de Excepciones en Python

Cuando ejecutas un programa Python, el intérprete detiene la ejecución inmediatamente si encuentra un error no manejado. Estos errores caen en dos categorías amplias:

  1. Errores de sintaxis – problemas detectados durante el análisis.
  2. Errores lógicos (excepciones) – problemas que surgen mientras el código se ejecuta.

Errores de Sintaxis en Python

Un error de sintaxis ocurre cuando el código fuente viola las reglas gramaticales de Python. El intérprete señala la ubicación exacta con un acento circunflejo (^) en el mensaje de error.

> >>> if a < 3
File "<interactive input>", line 1
if a < 3
^
SyntaxError: invalid syntax

En este ejemplo, los dos puntos (:) faltantes después de la sentencia if disparan un SyntaxError.


Errores Lógicos en Python (Excepciones)

Los errores lógicos, o excepciones, surgen solo después de que el código pasa la verificación de sintaxis. Ejemplos comunes incluyen:

Cuando se lanza una excepción, Python crea un objeto excepción. Si permanece sin manejar, se imprime un traceback mostrando la pila de llamadas y la razón del fallo.

> >>> 1 / 0
Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
ZeroDivisionError: division by zero
> >>> open("imaginario.txt")
Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: 'imaginario.txt'

Excepciones Integradas de Python

El intérprete de Python lanza una amplia gama de excepciones integradas para señalar diferentes condiciones de fallo. Puedes listarlas con el siguiente snippet:

print(dir(locals()['__builtins__']))

Referencia concisa de las excepciones integradas más frecuentes y las situaciones que las disparan:

ExcepciónCausa del Error
AssertionErrorLanzada cuando una sentencia assert falla.
AttributeErrorLanzada cuando falla una asignación o referencia de atributo.
EOFErrorLanzada cuando input() encuentra fin de archivo.
FloatingPointErrorLanzada cuando una operación de punto flotante falla.
GeneratorExitLanzada cuando se llama al método close() de un generador.
ImportErrorLanzada cuando el módulo importado no se encuentra.
IndexErrorLanzada cuando un índice de secuencia está fuera de rango.
KeyErrorLanzada cuando una clave falta en un diccionario.
KeyboardInterruptLanzada cuando el usuario presiona Ctrl+C o Delete.
MemoryErrorLanzada cuando una operación excede memoria disponible.
NameErrorLanzada cuando una variable no se encuentra en ámbito local o global.
NotImplementedErrorLanzada por métodos abstractos sin implementación.
OSErrorLanzada para errores relacionados con el sistema (ej. E/S de archivos).
OverflowErrorLanzada cuando un resultado aritmético es demasiado grande para representar.
ReferenceErrorLanzada cuando una referencia débil proxyea un objeto recolectado por garbage collector.
RuntimeErrorLanzada para errores que no encajan en otras categorías.
StopIterationLanzada por next() cuando un iterador se agota.
SyntaxErrorLanzada cuando el parser encuentra sintaxis inválida.
IndentationErrorLanzada cuando la indentación es incorrecta.
TabErrorLanzada cuando la indentación mezcla tabs y espacios inconsistentemente.
SystemErrorLanzada cuando el intérprete detecta un error interno.
SystemExitLanzada por sys.exit().
TypeErrorLanzada cuando una operación recibe un objeto de tipo inapropiado.
UnboundLocalErrorLanzada cuando una variable local se referencia antes de asignación.
UnicodeErrorLanzada para errores de codificación/decodificación Unicode.
UnicodeEncodeErrorLanzada durante errores de codificación Unicode.
UnicodeDecodeErrorLanzada durante errores de decodificación Unicode.
UnicodeTranslateErrorLanzada durante errores de traducción Unicode.
ValueErrorLanzada cuando una función recibe argumento de tipo correcto pero valor inapropiado.
ZeroDivisionErrorLanzada al dividir o hacer módulo por cero.

Si necesitas control más granular, Python permite definir clases de excepción personalizadas. Ver Excepciones Definidas por el Usuario en Python para detalles.

Manejar excepciones es sencillo con bloques try, except y finally. Para una inmersión más profunda, consulta Sentencias try, except y finally en Python.

python

  1. Palabras clave e identificadores en Python: Dominando palabras reservadas y convenciones de nomenclatura
  2. Sentencias, indentación y comentarios en Python: Guía clara
  3. Variables, constantes y literales en Python – Guía completa
  4. Dominando conversión y casting de tipos en Python: Guía completa
  5. Dominando E/S e importación de módulos en Python: Guía práctica
  6. Entendiendo variables globales, locales y nonlocal en Python
  7. Dominando Números, Conversión de Tipos y Matemáticas en Python
  8. Dominando Operaciones de Directorios y Archivos en Python
  9. Dominando Excepciones Personalizadas en Python: Guía Práctica
  10. Obtener la Fecha y Hora Actual en Python: Guía Práctica
  11. Java throw vs throws: Dominando el manejo de excepciones con ejemplos prácticos