No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Reto 7: algoritmos con manejo de errores

13/17
Recursos

Aportes 14

Preguntas 0

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Reg铆strate o inicia sesi贸n para participar.

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")
		}
}

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.

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
}

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

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铆

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;
}
}

try {
	var nombre = Prompt("Escribe tu nombre")
}
catch {
	alert("no puedes ingresar n煤meros!"
}
  • Se solicita ingresar una edad, en caso que el usuario ingrese un texto o s铆mbolo y no un n煤mero se almacenara como cadena.
"Ingrese su edad"
try {
	//Almaceno la edad como valor num茅rico
} catch (Exception error) {
	//Almaceno la edad como Cadena
} 
``

en un caso donde se use un bucle while y el try catch en un inicio de sesion (sencillo como ejemplo)
i=1
while that i=1
try (leer las variables, contrase帽a y usuario. Y si no hay problema terminar con el bucle
i=i+1)
catch (hubo un error en los datos)
Aunq esto es puede hacer igual con condicionales usando
el operador l贸gico and.

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:


try
    [
        numero = [ 'anota las edades de tus familiares']
    ]
catch
    {
        edad1 = numero[0],
        edad2 = numero[1],
        edad3 = numero[2],
        n ( podria correr con un ciclo)
    }
try
	"Estoy tratando de recibir una info de una API"
	"Si todo sale bien muestro la informacion recibida"
catch
	"Mostrare un mensaje que diga"
	"Algo salio mal, intentelo nuevamente"
  • 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贸.

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