elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Lanzar excepcion
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Lanzar excepcion  (Leído 4,325 veces)
Jaquieline_JJ

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Lanzar excepcion
« en: 23 Marzo 2014, 19:16 pm »

Hola a todos, esta es mi primera vez en este foro y pues vengo aquí con una duda y a pedir su ayuda.

Lo que pasa es que estoy realizando un programa en C el cual permite al usuario ingresar un numerototote, para ello utilizo la librería gmp.h y obtengo el numero de tipo mpz_t a través del comando gmp_scanf, en este programa (que es para la escuela) no puedo utilizar strings.

El problema que tengo es que busco lanzar una excepción en caso de que el usuario ingrese un numero y accidentalmente (o adrede) ponga un carácter diferente a un numero (p. ej. 1111111111111111111112132134154564545446544dddd5454465464*56) y le diga al usuario que solo debe de ingresar números.

He estado buscando sobre el manejo de excepciones (ya que no se mucho sobre el tema) y encontré una excepcion llamada FormatException en JAVA, pero no encuentro el equivalente para implementarlo en C, he calado otras formas pero no logro hacer que capte la excepcion, ¿Alguno de ustedes sabe si existe algún equivalente, o me pueden decir alguna forma para manejar dicha excepción?  :huh: :huh:

De antemano muchas gracias  ;D


En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Lanzar excepcion
« Respuesta #1 en: 23 Marzo 2014, 19:23 pm »

La propia librería te dirá como se procesan los errores. No tiene nada que ver con el lenguaje.


En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Lanzar excepcion
« Respuesta #2 en: 23 Marzo 2014, 21:15 pm »

Si lo que buscas es lanzar una excepción, tienes el comando "throw".
Para un entero, pondrías "throw 123;". Y así con otros tipos.

Para capturarla:

Código
  1. try{
  2.    funcion_Excepcion();
  3. }catch(int n){
  4.    cout << n;
  5. }
En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Lanzar excepcion
« Respuesta #3 en: 23 Marzo 2014, 21:17 pm »

Pero eso no es C sino C++ y no necesariamente la librería tiene que lanzar las excepciones así.
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Lanzar excepcion
« Respuesta #4 en: 23 Marzo 2014, 21:38 pm »

El problema que tengo es que busco lanzar una excepción en caso de que el usuario ingrese un numero y accidentalmente (o adrede) ponga un carácter diferente a un numero (p. ej. 1111111111111111111112132134154564545446544dddd5454465464*56) y le diga al usuario que solo debe de ingresar números.

Hablaba de eso.
En línea

Jaquieline_JJ

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Lanzar excepcion
« Respuesta #5 en: 24 Marzo 2014, 06:33 am »

Efectivamente busco hacer algo como lo que dice ivancea96, pero no encuentro como manejarlo para el tipo de dato mpz_t, cale incluso poniendo: catch(mpz_t) y nada, e incluso utilizando algo que encontre llamado catch general (catch(...)) que capta cualquier error y tampoco me funcionó   :-(.

De acuerdo a lo que me ha dicho amchacon, he encontrado el manejo de errores con la funcion mpz_inp_str, la cual devuelve un 0, si el numero que ingreso es erroneo, pero solo me lo devuelve si ingreso al principio una letra u otro caracter diferente a un numero (p. ej. a1111111111111111111111111111111111111111111111111111111111111111111111111111111111111222), pero si pongo: 1111a111 toma los primeros digitos antes de la letra y es lo que quiero que evite   :(. Y perdon por el error, mi programa si esta mas enfocado en c++ puesto que empleo funciones como cin, cout o std  ;D

Help me please  :-(
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re:
« Respuesta #6 en: 24 Marzo 2014, 08:24 am »

Podrías hacer un throw de la string fallida. En cualquier caso, si lo que buscas es volver a pedir la entrada al usuario, con hacer cualquier throw, te podría bastar.

Enviado desde mi ST21i mediante Tapatalk
En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re:
« Respuesta #7 en: 24 Marzo 2014, 10:54 am »

Podrías hacer un throw de la string fallida. En cualquier caso, si lo que buscas es volver a pedir la entrada al usuario, con hacer cualquier throw, te podría bastar.

Enviado desde mi ST21i mediante Tapatalk
Y darle con los throws... Lo que busca el usuario es detectar el error, no montar un sistema de excepciones cuando encuentre un error.

¿No puedes leer la linea entera como texto y checkearla?
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
Jaquieline_JJ

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Lanzar excepcion
« Respuesta #8 en: 25 Marzo 2014, 05:49 am »

No, no debo de manejar nada con char ni string  :-(
En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Lanzar excepcion
« Respuesta #9 en: 25 Marzo 2014, 10:41 am »

Pues entonces no puedes hacer nada más. Si la librería solo detecta unos determinados errores no es culpa tuya...
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Añadir excepción al firewall del sp2
Programación Visual Basic
LaN 2 4,870 Último mensaje 20 Septiembre 2005, 11:54 am
por LaN
Siempre me genera una excepcion
Ingeniería Inversa
Ch@CaL 2 2,336 Último mensaje 24 Enero 2007, 15:37 pm
por Ch@CaL
Excepcion SQLException
Java
al020594 4 2,784 Último mensaje 13 Enero 2013, 03:34 am
por Slider324
Capturar excepcion
Programación C/C++
Xedrox 2 2,214 Último mensaje 6 Agosto 2013, 01:31 am
por BlackZeroX
Excepción con TomEE
Desarrollo Web
bertamax 0 2,275 Último mensaje 9 Diciembre 2014, 10:20 am
por bertamax
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines