Título: Duda con excepciones C++ Publicado por: Gunhack en 6 Junio 2015, 22:55 pm Buenas, en un ejercicio me piden crear una función con excepciones, una debe lanzar la excepción ios::failure si el formato ingresado no es válido, y la otra es que el numero ingresado esté fuera del intervalo dado en los parámetros de la función (out_of_range), así como lo tengo funciona, pero quería saber si está en lo correcto o hay una mejor forma de ponerlo (con las mismas excepciones) ya que quiero que cuando ingresen un caracter muestre la excepción failure pero solo toma la que le sigue. Gracias!
Código
He modificado el código, ya me lanza correctamente las excepciones, pero aún me queda la duda si es lo correcto. Código
Título: Re: Duda con excepciones C++ Publicado por: ivancea96 en 7 Junio 2015, 03:07 am Código
¿Para qué tiras esa excepción, pudiendo hacerlo directamente dentro del if? Además de ser más rápido, es también más claro. Si no vas a tirar excepción para fuera de la función, tirar excepción como simple "break" en el código es poco necesario. Mejor 3 if a 1 try-throw-catch. Y aprobecho para recordar que <stdlib.h> se puede reemplazar por <cstdlib>, ya que estás con C++. Y bueno, preferible ponerle tipo de retorno a la función main. Más que nada, para guardar un poco las formas xD Título: Re: Duda con excepciones C++ Publicado por: Gunhack en 7 Junio 2015, 04:48 am Código
¿Para qué tiras esa excepción, pudiendo hacerlo directamente dentro del if? Además de ser más rápido, es también más claro. Si no vas a tirar excepción para fuera de la función, tirar excepción como simple "break" en el código es poco necesario. Mejor 3 if a 1 try-throw-catch. Y aprobecho para recordar que <stdlib.h> se puede reemplazar por <cstdlib>, ya que estás con C++. Y bueno, preferible ponerle tipo de retorno a la función main. Más que nada, para guardar un poco las formas xD Es que en el ejercicio del libro venía que lo pusiera así :xD también se me hizo innecesario pero supongo es para entender como funciona, muchas gracias por tu respuesta! y gracias por lo de <cstdlib>. ;-) |