---
title: Curso de Python &#8211; 7. Excepciones
url: https://jarroba.com/curso-de-python-7-excepciones/
author: Ramón Invarato
date: 2020-07-17
modified: 2026-10-21
language: es
license: CC BY-NC-SA 3.0 (https://creativecommons.org/licenses/by-nc-sa/3.0/) — attribution: "Curso de Python &#8211; 7. Excepciones", Ramón Invarato, jarroba.com
categories: Lenguajes de Programación
tags: python
series: Curso de Python (part 8 of 9)
repository: https://github.com/jarroba/Curso-Python/tree/master/Ejercicios
---

# Curso de Python &#8211; 7. Excepciones

> Aprende a capturar y lanzar excepciones en Python con try/except y BufferError, y decide cuáles controlar, con ejercicios de frutas y un contador.

En programación no existen errores como tal, sino que son excepciones. La típica ventana de error simplemente es una excepción que es recogida en esa ventana y se le muestra al usuario, el programa habrá fallado porque habrá una excepción que no se ha controlado y la ha tenido que controlar el sistema operativo.

 

 

## Teoría

 Saltar al contenido del PDF

 

[**Descargar Teoría**](https://github.com/jarroba/Curso-Python/raw/master/Teoria/7-Excepciones.pdf)

 

 

## 7.1- Excepciones

 

Un programa puede generar muchas excepciones, la clave es saber controlarlas, tener medios para localizarlas, cuáles tenemos que controlar y cuáles tenemos que dejar pasar.

 

 

 

## Ejercicios

 

### Ejercicio [7.1-frutas.py](https://github.com/jarroba/Curso-Python/blob/master/Ejercicios/7.1-frutas.py)

 

Crea un listado con cinco frutas.

 

Pregunta al usuario por pantalla el índice del listado para devolvérselo. En caso de que devuelva una excepción tendrá que ser capturada y avisar al usuario del error.

 

![Captura de la consola del ejercicio de frutas: devuelve 'manzana' y 'plátano' y avisa del error al pedir la posición 99](https://jarroba.com/wp-content/uploads/2020/07/Ejercicio-frutas-www.jarroba.png)

 

 

### Ejercicio [7.2-contador_limitado.py](https://github.com/jarroba/Curso-Python/blob/master/Ejercicios/7.2-contador_limitado.py)

 

Crea un while True que esté siempre iterando y sumando a un contador +1 (e imprímelo).

 

El ordenador donde lo ejecutamos está un poco limitado y no puede darse que el contador sea mayor que 9999. En ese momento se lanzará una excepción BufferError con un mensaje «Se ha superado los 9999 registros», ya que no se podrá sumar más. Si ejecutas con este código (ahora, sin avanzar más en el ejercicio) el programa terminará con un error en tiempo de ejecución.

 

![Captura de la consola con el contador hasta 9999 y el Traceback de BufferError «Se ha superado los 9999 registros»](https://jarroba.com/wp-content/uploads/2020/07/Ejercicio-contador-error-www.jarroba.com_.png)

 

Pero no queremos terminar el programa, queremos después del bucle que continúe el programa. Para ello capturaremos la excepción fuera del bucle, será donde mostremos el mensaje de error con el siguiente formato: «Se ha detectado el error ‘{mensaje_del_buffererror}'»

 

Y para terminar fuera del bucle imprimiremos el texto: «el código continúa»

 

![Captura de la consola con el contador y el error capturado con try/except; el programa continúa con «el código continua»](https://jarroba.com/wp-content/uploads/2020/07/Ejercicio-contador-sin-error-www.jarroba.com_.png)

## Serie: Curso de Python

1. [Curso de Python &#8211; 0. Entorno de desarrollo para Python](https://jarroba.com/curso-de-python-0-entorno-de-desarrollo-para-python.md)
2. [Curso de Python &#8211; 1. Introducción](https://jarroba.com/curso-de-python-1-introduccion.md)
3. [Curso de Python &#8211; 2. Tipos básicos de datos](https://jarroba.com/curso-de-python-2-tipos-basicos-de-datos.md)
4. [Curso de Python &#8211; 3. Colecciones](https://jarroba.com/curso-de-python-3-colecciones.md)
5. [Curso de Python &#8211; 4. Estructuras de control de flujo](https://jarroba.com/curso-de-python-4-estructuras-de-control-de-flujo.md)
6. [Curso de Python &#8211; 5. Funciones](https://jarroba.com/curso-de-python-5-funciones.md)
7. [Curso de Python &#8211; 6. Bibliotecas/Paquetes](https://jarroba.com/curso-de-python-6-bilbiotecas-paquetes.md)
8. [Curso de Python &#8211; 7. Excepciones](https://jarroba.com/curso-de-python-7-excepciones.md)
9. [Curso de Python &#8211; 8. Ficheros](https://jarroba.com/curso-de-python-8-ficheros.md)

