Básicos del Lenguaje

1

Guía de instalación y conceptos básicos

2

Archivos y slides del curso práctico de Python

3

IMPORTANTE: Instalando Ubuntu Bash en Windows para facilitarte el seguimiento del curso desde Windows.

4

¿Qué es la programación?

5

¿Por qué programar con Python?

6

Operadores matemáticos

7

Variables y expresiones

8

Presentación del proyecto

9

Funciones

10

Usando funciones en nuestro proyecto

11

Operadores lógicos

12

Estructuras condicionales

Uso de strings y ciclos

13

Strings en Python

14

Operaciones con Strings en Python

15

Operaciones con strings y el comando Update

16

Operaciones con strings y el comando Delete

17

Operaciones con strings: Slices en python

18

For loops

19

While loops

20

Iterators and generators

Estructuras de Datos

21

Uso de listas

22

Operaciones con listas

23

Agregando listas a nuestro proyecto

24

Diccionarios

25

Agregando diccionarios a nuestro proyecto

26

Tuplas y conjuntos

27

Tuplas y conjuntos en código

28

Introducción al módulo collections

29

Python comprehensions

30

Búsquedas binarias

31

Continuando con las Búsquedas Binarias

32

Manipulación de archivos en Python 3

Uso de objetos y módulos

33

Decoradores

34

Decoradores en Python

35

¿Qué es la programación orientada a objetos?

36

Programación orientada a objetos en Python

37

Scopes and namespaces

38

Introducción a Click

39

Definición a la API pública

40

Clients

41

Servicios: Lógica de negocio de nuestra aplicación

42

Interface de create: Comunicación entre servicios y el cliente

43

Actualización de cliente

44

Interface de actualización

45

Manejo de errores y jerarquía de errores en Python

46

Context managers

Python en el mundo real

47

Aplicaciones de Python en el mundo real

Conclusiones finales

48

Python 2 vs 3 (Conclusiones)

Clases bonus

49

Entorno Virtual en Python y su importancia: Python en el mundo real

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

17 Días
4 Hrs
24 Min
2 Seg

Manejo de errores y jerarquía de errores en Python

45/49
Recursos

Python tiene una amplia jerarquía de errores que nos da posibilidades para definir errores en casos como donde no se pueda leer un archivo, dividir entre cero o si existen problemas en general en nuestro código Python. El problema con esto es que nuestro programa termina, es diferente a los errores de sintaxis donde nuestro programa nunca inicia.

Para ““aventar”” un error en Python utilizamos la palabra raise. Aunque Python nos ofrece muchos errores es buena práctica definir errores específicos de nuestra aplicación y usar los de Python para extenderlos.

Podemos generar nuestros propios errores creando una clase que extienda de BaseException.

Si queremos evitar que termine nuestro programa cuando ocurra un error, debemos tener una estrategia. Debemos utilizar try / except cuando tenemos la posibilidad de que un pedazo de nuestro código falle

  • try: significa que se ejecuta este código. Si es posible, solo ponemos una sola línea de código ahí como buena práctica
  • except: es nuestro manejo del error, es lo que haremos si ocurre el error. Debemos ser específicos con el tipo de error que vamos a atrapar.
  • else: Es código que se ejecuta cuando no ocurre ningún error.
  • finally: Nos permite obtener un bloque de código que se va a ejecutar sin importar lo que pase.

Aportes 36

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

ya puedo manejar los errores de mi vida 😦

Tutorial de Errores y excepciones de python en español.
Python2
http://docs.python.org.ar/tutorial/2/errors.html
Python3
http://docs.python.org.ar/tutorial/3/errors.html

Un error común que me ha tocado solucionar try/catch es la conexión a la base de datos

Jerarquía de clases para las build-in Exceptions:

.

BaseException
 +-- SystemExit
 +-- KeyboardInterrupt
 +-- GeneratorExit
 +-- Exception
      +-- StopIteration
      +-- StopAsyncIteration
      +-- ArithmeticError
      |    +-- FloatingPointError
      |    +-- OverflowError
      |    +-- ZeroDivisionError
      +-- AssertionError
      +-- AttributeError
      +-- BufferError
      +-- EOFError
      +-- ImportError
      |    +-- ModuleNotFoundError
      +-- LookupError
      |    +-- IndexError
      |    +-- KeyError
      +-- MemoryError
      +-- NameError
      |    +-- UnboundLocalError
      +-- OSError
      |    +-- BlockingIOError
      |    +-- ChildProcessError
      |    +-- ConnectionError
      |    |    +-- BrokenPipeError
      |    |    +-- ConnectionAbortedError
      |    |    +-- ConnectionRefusedError
      |    |    +-- ConnectionResetError
      |    +-- FileExistsError
      |    +-- FileNotFoundError
      |    +-- InterruptedError
      |    +-- IsADirectoryError
      |    +-- NotADirectoryError
      |    +-- PermissionError
      |    +-- ProcessLookupError
      |    +-- TimeoutError
      +-- ReferenceError
      +-- RuntimeError
      |    +-- NotImplementedError
      |    +-- RecursionError
      +-- SyntaxError
      |    +-- IndentationError
      |         +-- TabError
      +-- SystemError
      +-- TypeError
      +-- ValueError
      |    +-- UnicodeError
      |         +-- UnicodeDecodeError
      |         +-- UnicodeEncodeError
      |         +-- UnicodeTranslateError
      +-- Warning
           +-- DeprecationWarning
           +-- PendingDeprecationWarning
           +-- RuntimeWarning
           +-- SyntaxWarning
           +-- UserWarning
           +-- FutureWarning
           +-- ImportWarning
           +-- UnicodeWarning
           +-- BytesWarning
           +-- ResourceWarning

Muy claro, este concepto lo usas en el curso de Ingeniería de Datos con Python y por fin lo entiendo!

Esta clase si tiene una explicación demasiado pobre, sin ejemplos y sin demostrar todo el potencial de para que sirve el manejo de errores 😦

ya puedo mostrar programas a los de la oficina sin que salgan errores y sin dar mal percepcion

try: significa que se ejecuta este código. Si es posible, solo ponemos una sola línea de código ahí como buena práctica
except: es nuestro manejo del error, es lo que haremos si ocurre el error. Debemos ser específicos con el tipo de error que vamos a atrapar.
else: Es código que se ejecuta cuando no ocurre ningún error.
finally: Nos permite obtener un bloque de código que se va a ejecutar sin importar lo que pase.

Cuando usemos Try: La buena práctica es usar una sola línea de código.
Except:
Ejecuta esté código cuando hay una excepción.
Else: No exceptions? ejecuta esto

De hecho algo que te solicitan como programador de Python suelen solicitar que uses excepciones.

Palabras reservadas para manejar un error o excepciones en Python:


try: Permite que un bloque de codigo busque errores
.
except: Bloque que permite manejar el error
.
finally: Bloque que permite ejecutar codigo, independientemente del resultado de los bloques try y except

.

IMPORTANTE Para manejar el error debemos conocer el tipo de error que genera o que generara al momento de ejecutarlo
.
Como conocer el error que genera un codigo: Para hacer saber a la otra persona o a nosotros mismo que tipo de error esta generando el programa podemos hacerlo de igual forma como vemos el tipo de dato que estamos manejando puesto que recuerda que todo en python es un objeto, entonces en este caso pudiesemos aplicar lo siguiente:

Ejemplo:

try:
    c = int(input("Ingrese un valor: "))
    c / 0

except Exception as c: #Con esto estamos evaluando la variable para la excepcion
    print(type(c)._name) ---> Con esto podemos saber el tipo de el error y el nombre del mismo

#ZeroDivisionError

---
De esta forma, estaria evaluando el error, por que por ejemplo si le pasamos una cadena de texto, entonces el resultado sera un ValueError

IMPORTANTE Tambien podemos poner otras declaraciones de except, para hacer multiples excepciones dentro de una misma declaracion

Toca profundizar también para generar warnings

https://docs.python.org/3/library/warnings.html#warning-categories

BaseException
 ├── BaseExceptionGroup
 ├── GeneratorExit
 ├── KeyboardInterrupt
 ├── SystemExit
 └── Exception
      ├── ArithmeticError
      │    ├── FloatingPointError
      │    ├── OverflowError
      │    └── ZeroDivisionError
      ├── AssertionError
      ├── AttributeError
      ├── BufferError
      ├── EOFError
      ├── ExceptionGroup [BaseExceptionGroup]
      ├── ImportError
      │    └── ModuleNotFoundError
      ├── LookupError
      │    ├── IndexError
      │    └── KeyError
      ├── MemoryError
      ├── NameError
      │    └── UnboundLocalError
      ├── OSError
      │    ├── BlockingIOError
      │    ├── ChildProcessError
      │    ├── ConnectionError
      │    │    ├── BrokenPipeError
      │    │    ├── ConnectionAbortedError
      │    │    ├── ConnectionRefusedError
      │    │    └── ConnectionResetError
      │    ├── FileExistsError
      │    ├── FileNotFoundError
      │    ├── InterruptedError
      │    ├── IsADirectoryError
      │    ├── NotADirectoryError
      │    ├── PermissionError
      │    ├── ProcessLookupError
      │    └── TimeoutError
      ├── ReferenceError
      ├── RuntimeError
      │    ├── NotImplementedError
      │    └── RecursionError
      ├── StopAsyncIteration
      ├── StopIteration
      ├── SyntaxError
      │    └── IndentationError
      │         └── TabError
      ├── SystemError
      ├── TypeError
      ├── ValueError
      │    └── UnicodeError
      │         ├── UnicodeDecodeError
      │         ├── UnicodeEncodeError
      │         └── UnicodeTranslateError
      └── Warning
           ├── BytesWarning
           ├── DeprecationWarning
           ├── EncodingWarning
           ├── FutureWarning
           ├── ImportWarning
           ├── PendingDeprecationWarning
           ├── ResourceWarning
           ├── RuntimeWarning
           ├── SyntaxWarning
           ├── UnicodeWarning
           └── UserWarning

Los errores deben ser manejados de manera estrátégica.

Jerarquía de errores:

  • try: Ejecuta este código
  • except: Ejecuta este código cuando hay una excepción
  • else: ¿No hay excepciones? Ejecuta este código
  • finally: Siempre ejecuta este código

Atrapamos los errores para que sean controlados.

A la hora de atrapar un error, tambien necesitamos generar una estrategia, debido a que esa parte en especifico de nuestro programa no puede parar, de esa forma hacemos un try catch que en Python seria mejor dicho como un try: except (error) as error:para hacer una incorporacion en caso de que falle.

Para aventar un error utiizamos el keyword raise, es decir que cuando ocurre algo que sabemos que puede pasar, entonces lanzamos un error para que este termine indicando el error.

Los errores en Python, hacen que el programa termine justo en el momento que se lanza ese error. Por lo que es una desventaja si necesitamos que siga corriendo a pesar de que exista el error.

Los iteradores lanzan una excepción al final. Un

for i in range(n):...

Lanza una expeción al final.

Muy bien explicado.

Buena Info, adelantarse a posiblies errores

Para complementar la clase, este es un tutorial con ejemplos de manejo de errores (try, except):

https://www.youtube.com/watch?v=2MaAs7XU2T0

Python utiliza la programacion orientada a objetos con sus errores, de lo que podemos aprovecharnos para extender otros errores.

BaseException es en pocas palabras: todos los errores.

finally se ejecuta no importa lo que pase, debido a que puede que solucionando el error, no terminemos procesos y debido a que el codigo ya se ejecuto, no podemos arreglar o cerrar lo que abrimos, por ello finally nos permite tener un soporte detras.

else es cuando no ocurre un error, osea, cuando va bien, cosa interesante debido a que es mal visto en otros lenguajes.

Except es sencillo, solo ponemos el error que puede suceder, y luego el codigo a ejecutar si este no funciona.

Para poner en forma nuestra estrategia, solo tenemos que poner try, que es el primero, dentro del cual es debidamente adecuado solo poner una sola linea de codigo, ya que si ingresamos mas lineas corremos el riesgo de tener que manejar un error por cada linea.

En Python tenemos una buena sintaxis de errores, Try, except, else and finally.

it's a good practice to define the own applications errors, and uniquely use the built-in exceptions in case we have a problem that fit with it.

Nosotros tambien podemos crear nuestros errores, solo tenemos que poner en nuestra clase, la super clase BaseException.

Python tiene un jerarquia rica de errores.

ya puedo manejar el error de mi ex :v

en otros lenguajes conocía el try/catch,
sin embargo el try/except/else/finally es mucho mas rico en posibilidades.

  • Los programas en python pueden terminar inesperadamente, si encuentran un error.
  • Los errores son lanzados por el keyword raise.
  • Podemos generar nuestro propios errores, extendiendo la clase genérica de errores BaseException.
  • Para evitar que el programa termine inesperadamente, se debe contar con una estrategia de control de errores. Para ello se utiliza try ... except ... else ... finaly.