Red de conocimiento informático - Problemas con los teléfonos móviles - Un método de análisis de ejemplo del impacto de las excepciones de Python en el rendimiento de ejecución del código

Un método de análisis de ejemplo del impacto de las excepciones de Python en el rendimiento de ejecución del código

Las capacidades de manejo de excepciones de Python son muy poderosas, pero un uso inadecuado también puede tener consecuencias negativas. También me gusta usar excepciones al escribir programas. Aunque es mejor codificar de forma defensiva, dejarlo en manos del manejo de excepciones puede tener un efecto perezoso. De vez en cuando me pregunto cuánto afecta el manejo de excepciones al rendimiento, así que intenté probarlo hoy.

Excepciones de Python (Guía de estilo de código abierto de Google)

Consejo:

Se permiten excepciones, pero se debe tener cuidado.

Definición:

Las excepciones son una forma de romper el flujo de control normal de un bloque de código para manejar errores u otras condiciones inusuales.

Ventajas:

El flujo de control del código de operación normal no se mezcla con el código de manejo de errores. También permite que el flujo de control omita varios fotogramas cuando se produce una determinada condición. Por ejemplo, salte de n funciones anidadas en un solo paso sin continuar ejecutando el código incorrecto.

Desventajas:

Esto puede generar un flujo de control confuso. Es fácil pasar por alto situaciones de error al llamar a bibliotecas.

Conclusión:

La excepción debe cumplir ciertas condiciones:

Activa la excepción de esta manera: lanza MyException (mensaje de error) o lanza MyException. No utilice el formulario de excepción de dos argumentos (arroja MyException, mensaje de error) o de cadena caducada (arroja mensaje de error).

Un módulo o paquete debe definir su propia clase base de excepción específica del dominio, que debe heredar de la clase de excepción incorporada. La clase base de excepción del módulo debe llamarse "Error".

1

2

Clase

Error (Excepción):

Aprobado

Nunca use una declaración except: para detectar todas las excepciones, ni detectar Exception o StandardError, a menos que planee reactivar la excepción, o ya esté en el nivel más externo del hilo actual (recuerde imprimir un mensaje de error). Python es muy indulgente con las excepciones, excepto que realmente detecta cualquier error, incluidos los errores de sintaxis de Python. Es fácil ocultar errores reales usando excepto:.

Intenta reducir la cantidad de código en los bloques try/except. Cuanto mayor sea el bloque de prueba, más fácil será desencadenar excepciones inesperadas. En este caso, el bloque try/except ocultará el error real.

Utilice la cláusula finalmente para ejecutar el código que debe ejecutarse independientemente de si hay una excepción en el bloque try. Esto suele resultar útil para limpiar recursos, como cerrar archivos.

Al detectar excepciones, utilice como en lugar de comas. Por ejemplo

1234

Intenta

Subir

Error

Excepto...

Un error es un error:

Aprobar

Modo de experimento de diseño

Tome como ejemplo un experimento controlado relativamente simple e intuitivo.

Primero, defina un decorador para calcular el tiempo necesario para que se ejecute cada función:

12345678910

Excelente

Dispositivo de sincronización (función ):

Importación

Tiempo

Excelente

Embalaje (*

Parámetros,

*

*

kwargs):

Hora de inicio

time.time()