No tienes acceso a esta clase

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

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

14 Días
14 Hrs
2 Min
25 Seg

Reto 7: algoritmos con manejo de errores

13/17
Recursos

Para entender un poco más el uso de la estructura try / catch, resolvamos el siguiente problema, de esta manera identificarás cómo utilizarlos.

Cómo manejar errores con try/catch

El algoritmo consiste en dividir dos números. Para esto necesitaremos dos números ingresados por el usuario y realizaremos dicha operación.

"Inicio del programa"
numero1 = _
numero2 = _

"El resultado es: "
resultado = numero1 / numero2
Mostrar resultado
"Fin del programa"

Nuestro programa funciona correctamente si ingresamos cualquier número.

"Inicio del programa"
numero1 = 10
numero2 = 2

"El resultado es: "
5
"Fin del programa"

Sin embargo… ¿Qué sucedería si colocamos que numero2 sea igual a 0?

"Inicio del programa"
numero1 = 10
numero2 = 0

"El resultado es: "
ERROR

¡No puede ser! Nuestro programa colapsó porque no existe la división entre 0. Intentemos resolverlo con la ayuda de try / catch. Si existe un error mostraremos un mensaje.

"Inicio del programa"
numero1 = _
numero2 = _

try
    "El resultado es: "
    resultado = numero1 / numero2   
    Mostrar resultado
catch
    Mostrar "No existe división entre 0"

"Fin del programa"

Ahora comprobemos el algoritmo:

"Inicio del programa"
numero1 = 10
numero2 = 0

"No existe división entre 0"
"Fin del programa"

Ahora nuestro programa no colapsa si existe un error.

Contribución creada por Andrés Guano (Platzi Contributor).

Aportes 147

Preguntas 14

Ordenar por:

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

Creo que la mejor manera de entender el TRY CATCH es mediante la división. Si el divisor de una función es 0, matemáticamente no es posible realizar la división (n/0, siendo n cualquier número) y en cualquier lenguaje de programación al tratar de ejecutar una división por 0 siempre saldrá un error (aunque probando algo de código en Javascript esto no es del todo cierto, por alguna razón, Javascript si permite realizar la división por 0). Por lo tanto, es común usar la instrucción try/catch para evitar que ese error rompa el flujo la ejecución del algoritmo. A continuación el ejemplo en python:

  • Sin try/catch:
a = 10
b = 0

c = a / b

print("El resultado de dividir " + a + " entre " + b + " es " + c)
print("El programa termino con exito")

En este caso, la ultima linea de código, el mensaje que debería salir con El programa termino con exito no se ejecuta ya que Python al tratar de dividir por 0 lanzará un error en la consola y detendrá la ejecución del código.

  • Con try/catch
a = 10
b = 0

try:
    c = a / b
    print("El resultado de dividir " + a + " entre " + b + " es " + c)
except:
    print("Alto, no es posible dividir por 0")

print("El programa termino con exito")

En este caso, Python al tratar de realizar la división por 0 lanza el except (En Python no es catch sino except pero el concepto es el mismo), y muestra el mensaje Alto, no es posible dividir por 0, luego continúa con el código y finalmente muestra el mensaje El programa termino con exito que está fuera del bloque de try/catch.

Espero que el aporte les sea de ayuda para entender un poco más el concepto de try/catch. Otros usos que se le puede dar a esta instrucción, es cuando tratas de realizar operaciones artiméticas con diferentes tipos de datos que no son compatibles, cuando alguna variable no está definida, cuando se trata de indexar algún valor que no está en un array y así hay muchos otros usos para esta instrucción. San Google siempre será de gran ayuda si necesitan ampliar el concepto. Saludos

Si se tratara de un formulario, debe haber una manera en la que se indique al usuario donde poner los datos que se pide. La instrucción ideal try es que se muestre la indicación en el documento. Pero si esa instrucción falla, el plan B es que se indique de otra manera lo mismo, por eso el catch es mostrar mediante un alert donde colocar los datos.

try maquinaTragaMonedas {
	jugador = maquinaTragaMonedas {
		try = [manzana, cereza, coco, mango, 777, BAR, campana, estrella, naranjita]
]
		if jugador === maquinaTragaMonedas  {
			jugador i++}
	} else if{
			jugador !== maquinaTragaMonedas  {
				console.log("echale más we, no ganaste")
		}
}

try{
plan A
cruza el lago con el bote 🚣‍♂️
}catch{
plan B
Cruza el lago nadando 🏊‍♀️
}
[](

algoritmo grafico rapido, para explciar funcionamiento del try catch

Mi algoritmo es simple es una funcion que extrae dinero de uin cajero pero en caso que quede sin dinero lanza la alerta dinero insuficiente

try 
{
	extraerDinero(billsExtract);
}
catch 
{
	alert("Dinero insuficiente, soy un cajero pobre") //easter egg
}

Try: yo quiero hacer el funcionamiento de un algoritmo super complejo pero si algo me falla…
Catch: entonces yo realizo algo sencillo para que no quede nos quedemos sin nada…

try {
	sumar_numeros(x, y)
{
catch ( error = no definiste la función ) {
	alert ("lo sentimos no podemos sumar eso")
}

después de esto podemos ver que error fue colocándolo en la consola o algo así

try {
	var nombre = Prompt("Escribe tu nombre")
}
catch {
	alert("no puedes ingresar números!"
}

Esto me ayudo. ➡️ (https://es.javascript.info/try-catch)

Pensando en como aumentar la vida de un personaje en un juego. Sí el número está entre 11 y 100, aumenta 10 de vida, sino, aumenta 20 (10% de posibilidad).

Si hay un error que aumente por defecto 10 de vida.

Int vida = 100;

funtion potaDeVida(){
try {
If(random.numero >= 10 && <= 100){
vida = vida + 10;
}else{
vida = vida + 20
}
}Catch{
vida = vida + 10;
}
}

aporte hecho en python

  • Primero, se ejecuta el código en try {…}.

  • Si no hubo errores, se ignora catch (err): la ejecución llega al final de try y continúa, omitiendo catch.

  • Si se produce un error, la ejecución de try se detiene y el control fluye al comienzo de catch (err). La variable err (podemos usar cualquier nombre para ella) contendrá un objeto de error con detalles sobre lo que sucedió.

COMPRAS

dinero = 100
precio_producto = 150

Try {
	dinero >= precio_producto
print ("Compra del producto con éxito.")
}
Catch {
print ("Escoger otro producto o aumentar dinero.")
}

Aca mi ejemplo con javascript 😃

💻🖥¡Resolviendo el reto!

1) ¡La página se ha caído, hay que avisar al usuario de cualquier forma posible!

Try: Ejecuta un bloque de instrucciones (si existe un error en alguna parte del bloque no se ejecuta nada del Try y pasa al Catch)
Catch: Plan B para continuar con el flujo
Esto se utiliza más en bases de datos para controlar sentencias sql

Analogia del Try Catch

Te pongo la siguiente analogia. Imagina que vas a comprar un pan, hablas con el panadero y le pides que te de una baguette el panadero al no tener ese tipo de pan explota y te quedas tu sin pan y lleno de sangre. Eso pasa con las excepciones, siempre hay que evitarlas lo maximo posible, el hecho de que un lenguaje incluya una funcionalidad no es porque tiene que hacerse de esa forma siempre.

<code> 
"ingresa tu nombre"
tu nombre es:
try 
	print (tu nombre es)
catch
	print ("no puedes ingresar números"

Mi ejemplo consiste en ingresar dos números para realizar una división y si el usuario ingresa un valor que no sea número, Catch solicita ingresar un dato válido:

Como ya algunos lo mencionado en muy importante tratar de implementar estas excepciones, ya que otras personas quizás no tendrán los parámetros especificativos para correr el programa y otras palabras creamos los planes de contigencia para que el programa no se pare, y quede en la mitad de la ejecución. El ejemplo clásico es cuando vamos a dividir por cero. public class Exepnoverif { public void operaciones() { int numero=5,numero2 = 0; int result = numero/numero2; System.out.println(result); } /\* Se colocó try catch para capturar el error y continuar el programa sin interrupciones\*/ public void operacion2(){ try{ operaciones(); }catch (ArithmeticException ex){ JOptionPane.showMessageDialog(null, "Ha Ocurrido un Error, Has intentado dividir un numero entero por Zero"); } System.out.println("Programa terminado"); } public static void main(String\[] args) { Exepnoverif prueba = new Exepnoverif(); prueba.operacion2(); } el resultado de dicha ejecución : ![](https://static.platzi.com/media/user_upload/Captura%20desde%202024-06-04%2015-53-40-94212c84-473b-4bc8-82d6-4f30a2a35bf4.jpg) ![](https://static.platzi.com/media/user_upload/imagen-8adb0f7f-4a68-4f38-ac74-1c97d3e9a48f.jpg) Lo hemos visto, es colocar en el catch el mensaje de pantalla, donde informa, pero deja pasar al "try" sin problema para terminar el programa con el mensaje "Programa Terminado"
```js try { PagarFactura(Agua,Luz,Gas) } catch { alert(No se puedo realizar el pago, por favor intente mas tarde) } ```

No sé, si mi ejemplo este bien, pero recibo humildemente cualquier opinión

TRY
estoy haciendo un documento en WORD
//POR ALGUNA RAZON NO SE GUARDA SE VA LA LUZ
CATCH
auto guardado de la última instrucción

try: salir con mi cruch
Catch: Seguir aprendiendo en Platzi

Try:
’‘Estudiar ingles como es debido’’

Catch:
’‘Decir que soy intermedio en mi CV’’

No estaba entendiendo bien los ejemplos del try catch, en que momento usarlo más que todo, pero con este ejemplo que le pedí a gpt entendí mejor, espero les sirva

try {
  // código que puede causar una excepción
  let x = y + 1;
} catch (error) {
  // código que maneja la excepción
  console.log(error);
}

Este es el ejemplo sencillo en python que realicé

try:
    edad = int(input("digite su edad\n"))
    print(edad)
except ValueError:
    print("Ingrese un número entero")


Este es el ejemplo que hice, aprendiendo cada día 😃


function division()
  {
    try
    {
      var a = Number(prompt("introducir numero"));
      var b = Number(prompt("introducir numero"));
      resultado = a / b
      if(a == 0 , b == 0)
      {
        throw "No se puede dividir entre 0";
      }
    console.log("Resultado = " + resultado)
    }
    catch(error)
      {
        alert("Error: "+error);
      
    }

  }
division()

Try = Lograr entrar a la universidad + Estudiar en Platzi
Catch = Estudiar solo en Platzi, conseguir primer empleo, pagar universidad

<code> 

try {
  // codigo
}
catch (planB){
  // continuacion en caso de que el codigo puesto a prueba falle
}


Comparto mi código de try catch gestionando los mensajes de error: ```js const num1 = prompt("Por favor ingresa el primer número:"); const num2 = prompt("Por favor ingresa el segundo número:"); let resultado; try{ if(num2 != 0){ resultado = num1 / num2; console.log("El resultado es :", resultado); }else{ throw new Error("No se puede dividir entre cero"); } }catch(error){ console.error("Ocurrió un error:", error.message); } ```
### Ejemplo práctico: Imaginemos que se está trabajando con una operación que podría fallar, como acceder a una propiedad de un objeto indefinido. Veamos cómo `try...catch` puede manejar este error: `try {` `// Intentamos acceder a una propiedad de un objeto que no existe` `let obj = undefined;` `console.log(obj.propiedad); // Esto lanzará un error porque obj es 'undefined'` `} catch (error) {` `// Este bloque captura el error y permite manejarlo` `console.log("¡Ocurrió un error!", error.message);` `} finally {` `// Esto se ejecuta siempre, sin importar si hubo o no error` `console.log("Bloque 'finally': La operación ha finalizado.");` `}` ### ¿Qué sucede en este ejemplo? 1\. El código dentro de `try` intenta acceder a la propiedad `propiedad` de un objeto `undefined`. Esto lanzará un error. 2\. El flujo del programa se detiene en ese punto, y el control pasa al bloque `catch`, que captura el error y lo maneja. Aquí imprimimos un mensaje amigable junto con el mensaje del error (`error.message`). 3\. Finalmente, el bloque `finally` se ejecuta siempre, sin importar si hubo un error o no, lo cual puede ser útil para asegurar que ciertas operaciones se completen.
¡Solo es un ejemplo referencial!: ```js try{ conseguirEmpleo(); } catch{ estudiarEnPlatzi(1); } ```
Mi ejemplo (recibo feedback): ![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202024-08-01%20181120-1ccd766c-6702-4731-b72b-0d171b799790.jpg)
Ejemplo de la division de dos numeros en Python, en python la instrucción catch es except:. En este ejemplo se manejan dos tipos de errores: * El de ValueError que es una excepción incorporada en Python que salta cuando se espera un tipo de valor y se recibe otro. * El de  ZeroDivisionError sucede cuando se intenta dividir un número para cero. ```js def division(numero_a, numero_b): return numero_a / numero_b def main(): not_error = True while not_error: try: numero_a = int(input('Ingrese el numero a: ')) numero_b = int(input('Ingrese el numero b: ')) print(f'La división es {division(numero_a, numero_b)}') not_error = False except ValueError: print ('Ha sucedido un error de conversión a enteros\nVuelva a ingresar los dos numeros:') except ZeroDivisionError: print ('Ha sucedido un error de division para cero:\nVuelva a ingresar los dos numeros:') except Exception as error: print(f"Ha sucedido un error {err=}, {type(err)}=") main() ```
Creo que un ejemplo un poco mas comun puede ser el de las paginas web. Cuando intentas acceder a una pagina web en particular y no puedes, hay varios mensajes como 404 400 etc. Esos mensajes son los mensajes del Try y el Catch vendrian siendo las aternativas a volver a recargar o indican una informacion, como: este servidor esta en mantenimiento de x a x horas.
```python try: result = a / b except ZeroDivisionError as error: result = 'No se puede dividir por 0' return result ```
![](https://static.platzi.com/media/user_upload/ejercicio%20try-catch-97aca447-1cc2-406c-964b-2e2bbf851f90.jpg)

Implementacion de manejo de errores en algoritmo que divide 2 enteros y maneja los errores si el segundo numero = 0

Algoritmo divisionConTryCatch
    Escribir "Ingrese 2 números enteros:"
    Leer num1, num2
    intentar
        Si num20 Entonces
            resultado <- num1 / num2
            Escribir "El resultado de la división es:", resultado
        FinSi
    atrapar
        Escribir "¡Alto! No se puede dividir por 0. Ingrese otro número."
    FinAtrapar
FinAlgoritmo
Este me parece que es un ejemplo de como estructurar el código usando Try/Catch en una división while True: try: dividendo = float(input("Ingrese el dividendo: ")) divisor = float(input("Ingrese el divisor: ")) resultado = dividendo/divisor print("El resultado de la división es: ", resultado) continue except ZeroDivisionError: print("No se puede dividir por cero") except ValueError: print("Debe ingresar un valor númerico")
try { enumera los datos 3 2 1 0 -1 -2 -3 } crash{ -1 -2 -3 0 1 2 3 }
{ try---> avns= ("puedes avanzar el semáforo esta en verde") {catch---> alert= ("no puedes pasar el semáforo esta en rojo")
TRY Corrige errores de ortografia del documento \*baca \*voligrafo \*pelushe CATCH: (planb) Guarda las correcciones alcanzadas a hacer en una array |<u>vaca|boligrafo|</u>
Como ejercicio para entender el concepto de try catch con un ejemplo seria try: Pedir al usuario que escriba sus datos personales segun la categoria(ID,CELL ETC) catch: Guardar los datos como tipo strings si lo escribio en minuscula/ minuscula o en enterodecimal
![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202024-02-08%20a%20la%28s%29%209.47.53%E2%80%AFp.%C2%A0m.-df820af1-72d5-4352-8d61-54467365d810.jpg)
Acepto feedback!! ![](https://static.platzi.com/media/user_upload/image-e0951f0c-44e3-4d7b-a930-d97e5b5d51d2.jpg)
```txt Inicio del programa Do { Try { // Solicitar al usuario que ingrese un número Mostrar "Por favor, ingrese un número:" // Leer la entrada del usuario Leer entradaUsuario // Convertir la entrada a un número numero = ConvertirANumero(entradaUsuario) // Verificar si el número es válido if (EsNumeroValido(numero)) { // Procesar el número (aquí podrías hacer lo que necesites con el número válido) Mostrar "Número válido ingresado: " + numero } else { // Lanzar una excepción si el número no es válido Lanzar Excepcion("Número no válido") } } Catch (Excepcion) { // Manejar la excepción (por ejemplo, mostrar un mensaje de error) Mostrar "Error: " + Excepcion.Mensaje } // Preguntar al usuario si desea intentarlo nuevamente Mostrar "¿Desea intentarlo nuevamente? (Sí/No)" Leer respuesta } While (respuesta sea igual a "Sí") Fin del programa ```Explicación* Utilizamos un bucle `do/while` para repetir la solicitud y procesamiento hasta que el usuario decida no intentarlo más. * Dentro del bloque `try`, solicitamos al usuario que ingrese un número, intentamos convertirlo y verificamos su validez. * Si el número no es válido, lanzamos una excepción. * En el bloque `catch`, manejamos la excepción mostrando un mensaje de error. * Preguntamos al usuario si desea intentarlo nuevamente al final del bucle. Si la respuesta es "Sí", repetimos el bucle; de lo contrario, terminamos el programa.
```txt Inicio del programa Try { // Bloque de código que puede generar una excepción Dividir 10 por 0 } Catch (Excepción) { // Manejo de la excepción Mostrar "Error: No se puede dividir por cero" } Fin del programa ```
Ejemplo del uso de try catch en Javascript con una funcion de division entre 2 numeros. function dividir(a, b) { try { if (b === 0) { throw new Error("¡No se puede dividir por cero!"); } return a / b; } catch (error) { console.error("Error:", error.message); return null; // Otra acción para manejar el error } finally { console.log("Operación de división finalizada."); } }

Gracias por el aporte!

Este es un ejemplo de try catch 😃
feedback si consideras que hay mejores formas

try Loguin de user y password catch mostrar formulario de registro
Creé un programa que guarda 5 números introducidos por el usuario que detecta cuando en la str proporcionada está presente una letra, a través del error ValueError, da aviso al usuario y solicita nuevamente introducir un numero. ```python def crear_lista_de_numeros(list_of_numbers): while len(list_of_numbers) < 5: try: list_of_numbers.append(int(input("Introduce un numero: "))) except ValueError: print("Texto introducido, esta lista solo acepta numeros") crear_lista_de_numeros(list_of_numbers) return list_of_numbers def main(): print("Guarda una lista con 5 numeros de telefono para guardar en tu agenda") list_of_numbers = [] crear_lista_de_numeros(list_of_numbers) print(f"Tus numeros guardados son: {list_of_numbers}") if __name__ == '__main__': main() ``````python ```
![](https://static.platzi.com/media/user_upload/image-144df992-65fc-4153-905e-7d8b2d2014ca.jpg)![](https://static.platzi.com/media/user_upload/image-0bb9827a-c0bf-4c46-918e-68192c528c2f.jpg)

Try: Seleccionar boton
Si hay error al seleccionar el boton.
Cath: No responde - Refrescar navegador

try:
    numerador = int(input("Ingresa un numerador: "))
    denominador = int(input("Ingresa un denominador: "))
    
    resultado = numerador / denominador
    
    print("El resultado de la división es:", resultado)

catch ZeroDivisionError:
    print("No es posible dividir por cero.")

catch ValueError:
    print("Ingresa números válidos.")

Try:
Andar con las piernas

Catch:
alert(“Fractura en la rodilla, utiliza muletas”)

En python hay que usar ** try-except**.
Hice un ejemplo sencillo con el error al dividir un número entre cero.

class FondosInsuficientesError(Exception):
pass

def comprar_productos():
total_gastado = 0

try:
    # Intentamos comprar la bicicleta
    precio_bicicleta = 200
    if total_gastado + precio_bicicleta <= 3200:
        total_gastado += precio_bicicleta
        print("Compraste una bicicleta por $", precio_bicicleta)
    else:
        raise FondosInsuficientesError()

    # Intentamos comprar la moto
    precio_moto = 2000
    if total_gastado + precio_moto <= 3200:
        total_gastado += precio_moto
        print("Compraste una moto por $", precio_moto)
    else:
        raise FondosInsuficientesError()

    # Intentamos comprar la televisión
    precio_tele = 4000
    if total_gastado + precio_tele <= 3200:
        total_gastado += precio_tele
        print("Compraste una televisión por $", precio_tele)
    else:
        raise FondosInsuficientesError()

except FondosInsuficientesError:
    print("Fondos insuficientes para comprar todos los productos.")
finally:
    print("Total gastado: $", total_gastado)

comprar_productos()

Que buen aporte con respecto al uso del try-catch es interesante en como muchos programadores lo usan para aplicarlo en problemas reales. Por supuesto que en los lenguajes y aplicaciones reales, los try catch siempre tienen un moton de codigo. Mas la parte try que la catch ya que es solo un mensaje de error. Aqui esta el reto de la profe.

let dinero = 100
let precio = 150

try {
    if (dinero <= precio) {
        "No puedes comprar el producto"
    } else {
        "Puedes comprar el producto"
    }
} catch (exception) {
    print("Error: Datos erroneos, prueba otra vez" + exception)
}

Gracias por la clase

Try es la instrucción y catch es el plan B; el cual se ejecutará cuando la instrucción tenga un error, por ejemplo, Try sacar la raíz cuadrada de un número Catch no existe la raíz cuadrada de un número negativo

TRay Cath es la mejor manera de controlar los errores de un proceso y evitar una salida anormal


Try:
	Ir a la venta en automovil

Except:
	Ir a la venta caminando
	

try
(ingrese su nombre)
an3
catch
esta ingresando numeros, intente de nuevo

Muchas Gracias Profe…

El manejo de errores con los bloques try-catch (o try-except) es una forma de controlar las excepciones que pueden ocurrir durante la ejecución de un programa.

def obtener_entero(cadena):
try:
entero = int(cadena)
return entero
except ValueError:
print(“Error: No se pudo convertir la cadena en un número
entero.”)
return None

try{
	if(usuario == cookies.accept){
		save.data
	}
} catch(error){
	if(usuario == cookies.denied){
		save.data
	}
}

Algoritmo de la clase hecho en JavaScript:

try {

    let numerador = 10; // Numerador
    let denominador = 0; // Denominador
  
    let resultado = numerador / denominador;
  
    if (!isFinite(resultado)) {

      throw new Error("La division no es posible");

    }

    console.log("El resultado de la división es: " + resultado);

  } catch (error) {

    console.log("Ocurrió un error: " + error.message);

  }

Try
"Ir a comprar al supermercado"
Catch
"Mandar a comprar al supermercado"

Realice dos ejemplos, uno teorico y otro en codigo:

  1. Try
    Controlar el balon y anotar gol.
  • Estar posicionado

  • Detener el balon

  • Mantenerlo controlado

    Catch

  • Correr y driblar para recuperar el balon.

Try representa mi intento de controlar el balón como delantero, mientras que el Catch es la respuesta después de que el balón se haya escapado y permite recuperarme rápidamente para seguir buscando el gol.

try:
    edad = int(input("Ingresa tu edad: "))
    resultado = 2023 - edad
    print("Naciste en el año", resultado)
catch ValueError:
		print("Ha ocurrido un error. Ingresa un número válido para tu edad.")

TRY

  • Le solicito al usuario ingresar su edad, y ese valor lo guardo con un entero.
  • Realizo un calculo basado en la edad que ingreso el usuario.
  • Imprimo el resultado en pantalla.
    CATCH
  • Capturo un error si el usuario ingreso letras o caracteres distintos a numeros, ese error es de tipo ValueError (Error de Valor).
  • Imprime un mensajede de error de tipo de Dato para edad.

en un juego de piedra papel o tijera en JavaScript que me dejaron como reto le di al jugador la posibilidad de poner las opciones 1,2 y 3 para escoger su opción pero no me percate si el jugador colocaba otro numero como 5 o 9 el código tendría problemas el try catch seria una gran solución en este caso

try:
    gastos = []
    for i in range(7):
        dia = int(input(f"Ingrese los gastos del día {i+1}: "))
        gastos.append(dia)

    promedio = sum(gastos) / len(gastos)
    print(f"El promedio de gastos de la semana es igual a {promedio:.2f}")
    if promedio >= 100:
        print(f"El promedio de gastos semanal superó los 100 dólares: {promedio:.2f}")
except ValueError:
    print("Debe ingresar valores numéricos para los gastos.")

try{ functionx()}
catch{ console.log(“algo anda mal”)

Aqui les comparto un script con manejo de exepciones por si el usuario ingresa una opcion no valida en Python

¿Qué es un dato?

En informática, un dato es cualquier información que puede ser almacenada y procesada por un programa de computadora. Los datos pueden tomar muchas formas diferentes, desde texto y números hasta imágenes y sonidos. En general, se considera que los datos son la materia prima con la que trabajan los programas de computadora.

Tipos de datos

Existen varios tipos de datos que se utilizan en programación, entre los que destacan:

  • Datos de texto: se refieren a cadenas de caracteres que representan palabras, frases, oraciones, etc. Los datos de texto se utilizan ampliamente en aplicaciones como procesadores de texto, correo electrónico y redes sociales.
  • Datos numéricos: se refieren a valores que representan números, ya sean enteros o decimales. Estos datos se utilizan en una amplia variedad de aplicaciones, desde cálculos matemáticos hasta simulaciones científicas y financieras.
  • Datos booleanos: se refieren a valores que pueden ser verdaderos o falsos. Estos datos se utilizan ampliamente en aplicaciones que requieren toma de decisiones, como la programación de juegos y sistemas de votación en línea.
  • Arrays: como se mencionó anteriormente, los arrays son estructuras de datos que permiten almacenar una colección de elementos del mismo tipo en una única variable. Los arrays son muy utilizados en programación para almacenar y manipular grandes cantidades de datos de manera eficiente.

Ejemplo de algoritmo de un reloj

A continuación, se presenta un ejemplo de un algoritmo para mostrar la hora actual en un reloj digital:

  1. Obtener la hora actual del sistema.
  2. Convertir la hora actual a un formato de 24 horas.
  3. Dividir la hora actual en horas, minutos y segundos.
  4. Mostrar las horas, minutos y segundos en un formato de reloj digital.
  5. Esperar un segundo.
  6. Repetir el paso 1.

Este algoritmo utiliza datos numéricos para representar las horas, minutos y segundos, así como datos de texto para representar el formato del reloj digital. Además, utiliza un bucle para repetir continuamente la obtención y muestra de la hora actual.

¿Qué son las estructuras de control?

Las estructuras de control son instrucciones o bloques de código que permiten modificar el flujo de ejecución de un programa de computadora. Es decir, son herramientas que permiten controlar el orden en que se ejecutan las instrucciones del programa, permitiendo tomar decisiones, realizar repeticiones y ejecutar acciones condicionales.

Las estructuras de control son fundamentales en la programación, ya que permiten escribir programas más complejos y sofisticados que pueden tomar decisiones y realizar acciones de manera autónoma. Además, el uso adecuado de las estructuras de control puede mejorar la eficiencia y eficacia del programa al reducir el número de instrucciones innecesarias y repetitivas.

Existen tres tipos principales de estructuras de control:

Estructuras condicionales

Las estructuras condicionales permiten tomar decisiones en función del resultado de una o varias condiciones. La estructura condicional más común es el “if” o “si” en español, que ejecuta una instrucción o bloque de código solo si se cumple una condición. También existen otras estructuras condicionales como “else” o “sino” en español, que se ejecutan en caso contrario a la condición establecida en el “if”, y “else if” o “sino si” en español, que permiten establecer varias condiciones consecutivas para tomar decisiones más complejas.

Estructuras de repetición

Las estructuras de repetición permiten ejecutar una o varias instrucciones varias veces en función de una condición. Las estructuras de repetición más comunes son el “for” y el “while” en los que se establece una condición y se ejecutan las instrucciones dentro de un bloque de código hasta que se cumpla o se deje de cumplir dicha condición. Estas estructuras son especialmente útiles cuando se necesitan realizar operaciones repetitivas con datos.

Estructuras de control de excepciones

Las estructuras de control de excepciones permiten manejar errores o situaciones excepcionales en la ejecución del programa. Las estructuras de control de excepciones más comunes son el “try-catch” o “intenta-captura” en español, que intentan ejecutar una instrucción y, si se produce una excepción o error, se ejecuta un bloque de código para manejar la situación. Estas estructuras son muy útiles para evitar que los programas se detengan por completo debido a errores inesperados y para manejar errores de manera eficiente.

Estructuras condicionales

Las estructuras condicionales son aquellas que permiten tomar decisiones en función del resultado de una o varias condiciones. En la programación, la estructura condicional más común es el “if” o “si” en español, que ejecuta una instrucción o bloque de código solo si se cumple una condición.

La sintaxis básica de la estructura condicional “if” es la siguiente:


if condición:
    instrucción(es)

Donde “condición” es una expresión booleana que evalúa si se cumple o no una determinada condición, y “instrucción(es)” es una o varias instrucciones que se ejecutarán si se cumple la condición.

También existen otras estructuras condicionales, como el “else” o “sino” en español, que se ejecutan en caso contrario a la condición establecida en el “if”. La sintaxis básica de la estructura condicional “if-else” es la siguiente:


if condición:
    instrucción(es) si se cumple la condición
else:
    instrucción(es) si no se cumple la condición

Además, existe el “else if” o “sino si” en español, que permite establecer varias condiciones consecutivas para tomar decisiones más complejas. La sintaxis básica de la estructura condicional “if-else if-else” es la siguiente:


if condición1:
    instrucción(es) si se cumple la condición1
elif condición2:
    instrucción(es) si se cumple la condición2
else:
    instrucción(es) si no se cumple ninguna de las condiciones anteriores

Las estructuras condicionales son fundamentales en la programación, ya que permiten que los programas tomen decisiones de manera autónoma y ejecuten instrucciones específicas en función de las condiciones establecidas. En general, las estructuras condicionales se utilizan para hacer que el programa sea más inteligente y eficiente en la toma de decisiones, lo que a su vez mejora la experiencia del usuario final.

Algoritmos con variables y condicionales

Los algoritmos con variables y condicionales son aquellos que utilizan variables para almacenar valores y estructuras condicionales para tomar decisiones en función de esos valores. Estos algoritmos son muy útiles para resolver problemas complejos en la programación.

A continuación se presenta un ejemplo de algoritmo con variables y condicionales, que simula el funcionamiento de un semáforo:

markdownCopy code
1. Iniciar variable color en "verde"
2. Iniciar variable tiempo en 0
3. Mientras tiempo < 60:
4.     Si color es "verde":
5.         Imprimir "Semaforo en verde"
6.         Incrementar tiempo en 1
7.         Si tiempo >= 60:
8.             Terminar el algoritmo
9.         Si tiempo >= 30:
10.            Cambiar color a "amarillo"
11.    Si color es "amarillo":
12.        Imprimir "Semaforo en amarillo"
13.        Incrementar tiempo en 1
14.        Si tiempo >= 60:
15.            Terminar el algoritmo
16.        Si tiempo >= 45:
17.            Cambiar color a "rojo"
18.    Si color es "rojo":
19.        Imprimir "Semaforo en rojo"
20.        Incrementar tiempo en 1
21.        Si tiempo >= 60:
22.            Terminar el algoritmo
23.        Si tiempo >= 55:
24.            Cambiar color a "verde"

En este algoritmo, se utilizan dos variables: “color”, que representa el color actual del semáforo, y “tiempo”, que representa el tiempo transcurrido desde que el semáforo se puso en verde. El algoritmo inicia con el semáforo en verde y el tiempo en 0, y se ejecuta en un ciclo mientras el tiempo sea menor a 60 segundos. En cada iteración del ciclo, se verifica el color actual del semáforo y se imprimen mensajes correspondientes en función de ese color. Además, se incrementa el tiempo en 1 segundo en cada iteración y se cambia el color del semáforo si se cumplen ciertas condiciones (por ejemplo, cambiar a amarillo después de 30 segundos en verde, y a rojo después de 45 segundos en amarillo). Finalmente, cuando el tiempo llega a 60 segundos, el algoritmo termina.

Este ejemplo muestra cómo se pueden utilizar variables y estructuras condicionales para simular un proceso complejo en un programa, lo que puede ser muy útil en situaciones reales.

Ciclos

Los ciclos son estructuras de control en programación que permiten ejecutar una serie de instrucciones repetidamente mientras se cumple una condición determinada. Los ciclos son útiles para procesar grandes cantidades de datos, realizar operaciones matemáticas complejas o simplemente para automatizar tareas repetitivas.

Existen dos tipos principales de ciclos en programación: el ciclo “while” y el ciclo “for”.

Ciclo while

El ciclo “while” ejecuta una serie de instrucciones repetidamente mientras se cumpla una condición determinada. La sintaxis básica de un ciclo while es la siguiente:


while condición:
    instrucciones

El ciclo while evalúa la condición al inicio de cada iteración. Si la condición se cumple, se ejecutan las instrucciones dentro del ciclo. Después de ejecutar las instrucciones, el ciclo vuelve a evaluar la condición y, si se cumple, se repite el proceso. El ciclo termina cuando la condición no se cumple más.

A continuación, se presenta un ejemplo de ciclo while que suma los primeros 10 números naturales:


suma = 0
i = 1

while i <= 10:
    suma += i
    i += 1

print("La suma de los primeros 10 números naturales es:", suma)

En este ejemplo, el ciclo while se repite mientras la variable “i” sea menor o igual a 10. En cada iteración, se suma el valor de “i” a la variable “suma”, y se incrementa el valor de “i” en 1. Después de que el ciclo termina, se imprime el valor final de la variable “suma”.

Ciclo for

El ciclo “for” es una estructura de control que permite iterar sobre una secuencia de elementos (como una lista o una cadena de caracteres) y ejecutar una serie de instrucciones para cada elemento de la secuencia. La sintaxis básica de un ciclo for es la siguiente:


for variable in secuencia:
    instrucciones

En cada iteración del ciclo for, la variable “variable” toma el valor de uno de los elementos de la secuencia y se ejecutan las instrucciones dentro del ciclo. Después de ejecutar las instrucciones, el ciclo avanza al siguiente elemento de la secuencia y repite el proceso hasta que se han procesado todos los elementos.

A continuación, se presenta un ejemplo de ciclo for que imprime los elementos de una lista de frutas:


frutas = ["manzana", "banana", "kiwi", "naranja"]

for fruta in frutas:
    print(fruta)

En este ejemplo, el ciclo for itera sobre la lista de frutas y en cada iteración, la variable “fruta” toma el valor de uno de los elementos de la lista y se imprime en la consola.

En resumen, los ciclos son estructuras de control en programación que permiten repetir una serie de instrucciones mientras se cumple una condición determinada. Los ciclos “while” y “for” son los tipos principales de ciclos en programación y son útiles para procesar grandes cantidades de datos y automatizar tareas repetitivas.

Algoritmos con ciclos

Aquí hay algunos ejemplos de algoritmos que utilizan ciclos:

  1. Suma de números: Este algoritmo pide al usuario un número n y calcula la suma de todos los números enteros desde 1 hasta n utilizando un ciclo for.

Inicio
  Leer n
  suma = 0
  Para i desde 1 hasta n hacer
    suma = suma + i
  FinPara
  Mostrar suma
Fin

  1. Factorial de un número: Este algoritmo pide al usuario un número n y calcula su factorial utilizando un ciclo while.

Inicio
  Leer n
  factorial = 1
  i = 1
  Mientras i <= n hacer
    factorial = factorial * i
    i = i + 1
  FinMientras
  Mostrar factorial
Fin

  1. Tabla de multiplicar: Este algoritmo pide al usuario un número n y muestra su tabla de multiplicar del 1 al 10 utilizando un ciclo for anidado.

Inicio
  Leer n
  Para i desde 1 hasta 10 hacer
    producto = n * i
    Mostrar n, " x ", i, " = ", producto
  FinPara
Fin

  1. Búsqueda en una lista: Este algoritmo busca un elemento específico en una lista y devuelve su índice utilizando un ciclo for.

Inicio
  lista = [2, 4, 6, 8, 10]
  elemento = 8
  indice = -1
  Para i desde 0 hasta longitud(lista)-1 hacer
    Si lista[i] == elemento entonces
      indice = i
      SalirPara
    FinSi
  FinPara
  Mostrar indice
Fin

Estos son solo algunos ejemplos de algoritmos que utilizan ciclos. Los ciclos son una herramienta poderosa en la programación que nos permiten automatizar tareas repetitivas y procesar grandes cantidades de datos de manera eficiente.

Try Catch

Try-Catch es una estructura de control utilizada en programación para manejar excepciones o errores que puedan ocurrir durante la ejecución de un programa.

La estructura Try-Catch consta de dos bloques principales: el bloque Try y el bloque Catch.

  • El bloque Try es donde se coloca el código que se espera que se ejecute sin errores. Si se produce algún error en este bloque, se genera una excepción y el control del programa pasa al bloque Catch.
  • El bloque Catch es donde se coloca el código que se ejecutará en caso de que se produzca una excepción. Este bloque recibe como parámetro la excepción generada por el bloque Try, lo que permite al programador analizar y solucionar el problema.

Aquí hay un ejemplo sencillo de cómo se utiliza la estructura Try-Catch en Java:

csharpCopy code
try {
   // Código que se espera que se ejecute sin errores
   int a = 10 / 0; // Genera una excepción de división entre cero
} catch (ArithmeticException e) {
   // Código que se ejecutará en caso de que se produzca una excepción
   System.out.println("Ha ocurrido un error: " + e.getMessage());
}

En este ejemplo, el bloque Try contiene una operación de división entre cero, lo que generará una excepción de tipo ArithmeticException. El bloque Catch recibe esta excepción y muestra un mensaje de error en la consola.

El uso de Try-Catch es fundamental en la programación moderna, ya que permite manejar errores de manera controlada y predecible. Con esta estructura de control, podemos garantizar que nuestro programa no se detendrá abruptamente en caso de errores inesperados, sino que manejará los errores de manera apropiada para seguir funcionando correctamente.

Algoritmos con manejo de errores

El manejo de errores en los algoritmos es una parte importante de la programación, ya que permite detectar y corregir errores que puedan ocurrir durante la ejecución del programa. Aquí hay un ejemplo sencillo de cómo se puede implementar el manejo de errores en un algoritmo:


int dividir(int a, int b) {
   if (b == 0) {
      throw new ArithmeticException("Error: división entre cero");
   } else {
      return a / b;
   }
}

try {
   int resultado = dividir(10, 0);
} catch (ArithmeticException e) {
   System.out.println("Ha ocurrido un error: " + e.getMessage());
}

En este ejemplo, se define una función dividir que toma dos números enteros como entrada y devuelve el resultado de la división entre ellos. Si el segundo número es cero, se genera una excepción de tipo ArithmeticException.

Luego, en el bloque Try, se llama a la función dividir con los parámetros 10 y 0, lo que generará la excepción de división entre cero. El bloque Catch recibe esta excepción y muestra un mensaje de error en la consola.

El manejo de errores también puede ser utilizado en ciclos y condicionales. Por ejemplo, si estamos leyendo datos de un archivo o de un usuario, podemos usar el manejo de errores para garantizar que los datos sean válidos antes de continuar con la ejecución del programa. Aquí hay un ejemplo de cómo se puede utilizar el manejo de errores en un ciclo:


Scanner input = new Scanner(System.in);
int num = -1;

while (num < 0 || num > 100) {
   try {
      System.out.println("Ingrese un número entre 0 y 100: ");
      num = Integer.parseInt(input.nextLine());
      if (num < 0 || num > 100) {
         throw new Exception("El número debe estar entre 0 y 100");
      }
   } catch (Exception e) {
      System.out.println("Ha ocurrido un error: " + e.getMessage());
   }
}

System.out.println("El número ingresado es: " + num);

En este ejemplo, se pide al usuario que ingrese un número entre 0 y 100. Si el número ingresado no cumple con este rango, se genera una excepción de tipo Exception. El ciclo se repite hasta que el usuario ingresa un número válido.

En resumen, el manejo de errores es esencial en la programación para detectar y corregir errores durante la ejecución del programa. Esto garantiza que nuestro programa pueda manejar situaciones inesperadas de manera controlada y predecible.

Algoritmos con manejo de errores

El manejo de errores en los algoritmos es una parte importante de la programación, ya que permite detectar y corregir errores que puedan ocurrir durante la ejecución del programa. Aquí hay un ejemplo sencillo de cómo se puede implementar el manejo de errores en un algoritmo:


int dividir(int a, int b) {
   if (b == 0) {
      throw new ArithmeticException("Error: división entre cero");
   } else {
      return a / b;
   }
}

try {
   int resultado = dividir(10, 0);
} catch (ArithmeticException e) {
   System.out.println("Ha ocurrido un error: " + e.getMessage());
}

En este ejemplo, se define una función dividir que toma dos números enteros como entrada y devuelve el resultado de la división entre ellos. Si el segundo número es cero, se genera una excepción de tipo ArithmeticException.

Luego, en el bloque Try, se llama a la función dividir con los parámetros 10 y 0, lo que generará la excepción de división entre cero. El bloque Catch recibe esta excepción y muestra un mensaje de error en la consola.

El manejo de errores también puede ser utilizado en ciclos y condicionales. Por ejemplo, si estamos leyendo datos de un archivo o de un usuario, podemos usar el manejo de errores para garantizar que los datos sean válidos antes de continuar con la ejecución del programa. Aquí hay un ejemplo de cómo se puede utilizar el manejo de errores en un ciclo:


Scanner input = new Scanner(System.in);
int num = -1;

while (num < 0 || num > 100) {
   try {
      System.out.println("Ingrese un número entre 0 y 100: ");
      num = Integer.parseInt(input.nextLine());
      if (num < 0 || num > 100) {
         throw new Exception("El número debe estar entre 0 y 100");
      }
   } catch (Exception e) {
      System.out.println("Ha ocurrido un error: " + e.getMessage());
   }
}

System.out.println("El número ingresado es: " + num);

En este ejemplo, se pide al usuario que ingrese un número entre 0 y 100. Si el número ingresado no cumple con este rango, se genera una excepción de tipo Exception. El ciclo se repite hasta que el usuario ingresa un número válido.

En resumen, el manejo de errores es esencial en la programación para detectar y corregir errores durante la ejecución del programa. Esto garantiza que nuestro programa pueda manejar situaciones inesperadas de manera controlada y predecible.

“inicio del programa”
Email = “ingresa tu correo electrónico”
Password = “Ingresa tu contraseña”
try
“Iniciar sesión”
Catch
Mostrar “Correo o contraseña incorrectos”
“Fin del programa”

Una demostración del try-catch usando diagrama de flujo

Acá un programa de gestión de inventario para una tienda que necesita comprobar que los datos ingresados sean correctos.

Recibo retroalimentaciones.

Creo que sería algo así

Una aplicación importante de Try/Catch no solo seria captar error internos al programa, sino que tambien aquellos externos al mismo en donde se trabaje con la colaboracion del usuario , un ejemplo:

  • Un juego para ninos
<import random

print("A aprender a sumar!")
while True:
  try:
    num1 = random.randint(1,20)
    num2 = random.randint(1,20)
    ans = int(input(f"{num1} + {num2} = "))
    if ans == num1+num2:
        print()
        print("Es correcto!")
        print()
    else:
        print()
        print(f"La repuesta es {num1+num2}. Intentemos otra vez!")
        print()
  except:
    print("Introduce solo numeros!")
    print()> 

Este es mi ejemplo.

Try 
	"Reproducir un video de Youtube"
Catch 
	"Mostrar el enlace de Youtube"

a = 1
b =4

try { "la suma de : " ,
c = a ++ b
Mostrar “La operacion fue exitosa”
} catch { mostrar “la operacion fallo en algo intenta de nuevo”}
fin

Try {Contactar a Richard Gere
}
Catch

El try catch es para la captura de errores no para ejecutar plan b, c o d,. El algoritmo debe ser resiliente si, pero el try lo que define es capturar algo que definitivamente no se esperaba, (un error). Pará los plan B, C o D están los if o funciones recursivas.. Es decir durante el try si algo no sale como se esperaba pero de tipo excepción . (Varables null, Definiciones, memoria, ejecución etc.) salta al catch, de resto siga funcionando como debe funcionar.

Uso del Try catch en JavaScript

let LegalAge = 18;

try {
  //Logica de nuestro flujo.
  //En esté caso no se definira la variable (InputUser)
  if(InputUser >= LegalAge){
    console.log('Eres mayor de edad!');
  }else{
    console.log('Eres menor de edad');
  }

} catch (error) {
  //Mostrar mensaje de error si el try no funciona.
  console.error('La validación no se completo');
}

Try: “Escriba su contraseña"
primer intento.
segundo intento.
Catch:” Ha excedido el número de intentos su cuenta estábloqueada temporalmente"

Aquí está un ejemplo de algoritmo en pseudocódigo que utiliza una estructura de control para manejar errores:

Declare una variable num con valor 0
Declare una variable error con valor falso
Hacer
  Escribir "Por favor ingrese un número: "
  Leer num
  Si num = 0 entonces
    Escribir "El número no puede ser cero"
    error = verdadero
  Sino
    error = falso
  Fin si
Mientras error = verdadero
Escribir "Gracias, has ingresado el número ", num

Este algoritmo utiliza un ciclo do-while para repetir un bloque de código hasta que la variable error sea falsa. El bloque de código dentro del ciclo solicita al usuario que ingrese un número y lo almacena en la variable num. Si el valor de num es igual a cero, se imprime un mensaje de error y se establece la variable error en verdadera. Si el valor de num es diferente de cero, se establece la variable error en falsa. El ciclo do-while continúa hasta que el usuario ingrese un número válido (es decir, un número diferente de cero). Una vez que se ingresa un número válido, el ciclo termina y el algoritmo imprime un mensaje de agradecimiento.

Es muy útil ya que no se detiene todo el programa por un error.

En el caso de un videojuego de mundo abierto con opciones aun no implementadas podria hacerse algo como:

try {
Actividad no implementada
}
catch {
“Esta opcion no esta disponible en esta version, vuelve en la siguiente actualizacion!”
}

"Inicio del programa"
Ingrese el medicamento:
"el resultado es"
ERROR
NO SE ENCONTRO CONEXION CON LA BASE DE DATOS
"el código que continúa no se ejecuta por el error"
-------------------------
"Inicio del programa"
Ingrese el medicamento:

try
     "el resultado es"
     resultado = buscar en base de datos de inventario
     Mostrar resultado
catch 
      Mostrar " Se perdió conexión con la base de datos"

"continúa el programa"
.
.
.
"fin del programa"

Try Catch

permite realizar una instrucción clara para ejecutar algo en caso de que esa instrucción no funcione, cuida la lógica del algoritmo en caso de que algo no salga bien.