REVIT ARCHITECTURE (959) – PYTHON – Funciones (43) – Excepciones (5) Ejemplos

A continuación se van a indicar algunas excepciones comunes.

ZeroDivisionError
Esta excepción aparece cuando intentas forzar a Python a realizar cualquier operación que provoque una división en la que el divisor sea cero, o indistinguible de cero. Hay más de un operador de Python que puede causar que se genere esta excepción y que son los siguientes: /, // y %.

ValueError
Esta excepción puede aparecer cuando se utilizan valores que puedan ser inapropiados en algún contexto. En general, esta excepción se genera cuando una función (como int() o float()) recibe un argumento de un tipo correcto, pero su valor es inaceptable.

TypeError
Esta excepción aparece cuando se intenta aplicar un dato cuyo tipo no puede ser aceptado en el contexto actual. Se puede ver en  el  siguiente ejemplo:

7495

short_list = [2]:

Aquí se crea una lista llamada short_list que contiene un solo elemento, el número entero 2.
Las listas en Python son estructuras de datos que pueden almacenar múltiples elementos de distintos tipos, y cada elemento tiene un índice asociado que empieza en 0. En este caso, short_list es una lista con un solo elemento en el índice 0, por lo tanto:

7496

one_value = short_list[1.0]:

Esta línea intenta acceder al elemento de la lista short_list usando el índice 1.0, que es un número flotante.
En Python, los índices de las listas deben ser números enteros, ya que los índices flotantes no tienen un significado claro en el contexto de una lista (no hay «índices intermedios»).
Como resultado, Python lanza una excepción TypeError, porque los índices de listas no pueden ser flotantes, solo enteros.

Excepción generada:
Cuando se ejecuta el código short_list[1.0], Python intenta interpretar el índice 1.0 como un número entero, pero no puede hacerlo, ya que espera un valor entero. Esto genera un error del siguiente tipo:

7497

Cómo corregir el código:
Si se desea acceder al segundo elemento de la lista, el índice debería ser un número entero como 1. Sin embargo, dado que short_list solo tiene un elemento en el índice 0, intentar acceder al índice 1 también generará un error IndexError (índice fuera de rango), ya que no existe un segundo elemento.

Si tu intención es acceder al único elemento de la lista, deberías hacer lo siguiente:

7498

AttributeError
Esta excepción ocurre, entre otras ocasiones, cuando intentas activar un método que no existe en el objeto con el que estás trabajando. Por ejemplo:

7499

short_list = [1]:

Aquí se crea una lista llamada short_list que contiene un solo elemento, el número entero 1.
En Python, las listas son estructuras de datos ordenadas que permiten almacenar múltiples valores, y los elementos se acceden a través de índices. En este caso, la lista short_list es:

7500

short_list.append(3):

La función append() es un método válido para listas en Python. Se utiliza para agregar un nuevo elemento al final de la lista.
En este caso, se agrega el número 3 al final de la lista short_list. Después de ejecutar esta línea, la lista se ve así:

7501

short_list.depend(4):

Aquí se intenta usar un método llamado depend(). Sin embargo, depend() no es un método válido para listas en Python.
Las listas tienen métodos como append(), extend(), pop(), entre otros, pero depend() no está entre los métodos disponibles para objetos de tipo lista.
Como resultado, cuando Python intenta ejecutar esta línea, lanza una excepción AttributeError, indicando que el objeto de tipo list no tiene el atributo o método llamado depend.
Excepción generada:
Al ejecutar la línea short_list.depend(4), Python genera un error de este tipo:

7502

Esto significa que el objeto short_list (una lista) no tiene un método llamado depend().

Cómo corregir el código:
Si tu intención era agregar otro valor a la lista, se debe usar el método adecuado. Por ejemplo, si se quiere agregar el número 4 a la lista, puedes usar el método append() nuevamente:

7503

Después de corregir el código, la lista sería:

7504

SyntaxError
Esta excepción se genera cuando el control alcanza una línea de código que no cumple la gramática de Python. Algunos errores de este tipo no se pueden identificar sin antes ejecutar el código. Este tipo de comportamiento es típico de los lenguajes interpretados: el intérprete siempre trabaja con prisa y no tiene tiempo para escanear todo el código fuente. Se conforma con verificar el código que se está ejecutando en ese momento.

Se recomienda no utilizar esta excepción y esta metodología de trabajo.

Aquí se tiene un ejemplo simple de un código que generaría un SyntaxError:

7505

En este código, falta el dos puntos (:) al final de la línea if 5 > 3. En Python, la estructura de un bloque if requiere que el encabezado termine con dos puntos. Debido a esta omisión, Python no puede interpretar correctamente la estructura de control, y lanza un SyntaxError.
El error que se genera será algo similar a esto:

7506

Cómo corregirlo:
Para corregir este SyntaxError, simplemente debes añadir los dos puntos al final de la línea del if:

7507

Ahora el código sigue la sintaxis correcta de Python y funcionará sin problemas.

Licencia Creative Commons Contenido Web de Yolanda Muriel está sujeto bajo Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.

Deja un comentario