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

 

 


Tema destacado:


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


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Problema capturando excepciones
« en: 5 Marzo 2012, 03:52 am »

Tengo una clase donde uno de sus métodos lanza una excepción y estuve debugueando y efectivamente se ejecuta la parte del throw, pero donde tengo el try... catch no está capturando la excepción y crashea la app. A qué se puede deber esto?


En línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Problema capturando excepciones
« Respuesta #1 en: 5 Marzo 2012, 10:18 am »

Si pones el código problemático te podremos ayudar. Se nos acabaron las bolas de cristal para adivinar problemas hace un par de meses


En línea

naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: Problema capturando excepciones
« Respuesta #2 en: 5 Marzo 2012, 15:14 pm »

...
Código
  1.        try{
  2.        buffer=servidor->recibirBuffer();
  3.        }catch(...){
  4.        break;
  5.        }
  6.  

Código
  1. string server::recibirBuffer()
  2. {
  3.    string rtn;
  4.    char buffer[MAX_BUFFER+1];
  5.    DWORD bytes;
  6.    fd_set ss;
  7.    timeval touts;
  8.  
  9.    FD_ZERO(&ss);
  10.    FD_SET(cnn,&ss);
  11.  
  12.    touts.tv_sec = 5;
  13.    touts.tv_usec = 0;
  14.  
  15.    if(select(0,&ss,NULL,NULL,&touts) == SOCKET_ERROR || (bytes=recv(cnn,buffer,MAX_BUFFER,0))<=0)
  16.        throw 1;
  17.    if(bytes>0)
  18.    {
  19.        buffer[bytes]='\0';
  20.        rtn = buffer;
  21.    }
  22.    return rtn;
  23. }
  24.  

EDIT:

Lo extraño es, que a veces funciona y a veces no.
« Última modificación: 5 Marzo 2012, 15:24 pm por naderST » En línea

darkvidhack

Desconectado Desconectado

Mensajes: 159


Be Linux my friend...


Ver Perfil WWW
Re: Problema capturando excepciones
« Respuesta #3 en: 8 Marzo 2012, 18:38 pm »

Puede que estes recogiendo la excepción en un sitio inadecuado, estas van ascendiendo desde las funciones donde se lanzan hasta el main, por ejemplo:

Si tienes una función 'function', en la cual lanzas una excepción, si tienes el catch para ESE TIPO de excepción en 'function', la capturará ahí, si no, ascenderá hacia la función "padre", por llamarla así, es decir, si desde el main llamas a 'function', la excepción asciende al main, ahora, si ahí la capturas, perfecto, pero si no la capturas ahí, te peta la aplicación ;).

Espero haberme explicado bien :)

Saludos
En línea

live and let die

la duda es la base de todo conocimiento
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con excepciones.
Java
|Miguel| 0 1,757 Último mensaje 5 Febrero 2012, 19:29 pm
por |Miguel|
Problema con las excepciones
Programación C/C++
amchacon 3 2,374 Último mensaje 28 Enero 2013, 14:50 pm
por amchacon
Problema con excepciones en C++: Stackwalker.h
Programación C/C++
SARGE553413 3 2,386 Último mensaje 2 Marzo 2013, 17:03 pm
por naderST
Problema con Excepciones en C#
.NET (C#, VB.NET, ASP)
ORTUS 2 3,198 Último mensaje 13 Junio 2013, 16:43 pm
por ORTUS
MOVIDO: Problema con Excepciones en C#
Programación C/C++
Novlucker 0 1,468 Último mensaje 12 Junio 2013, 18:33 pm
por Novlucker
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines