Autor
|
Tema: Problema al controlar excepcion en Visual Studio (Leído 25,838 veces)
|
Skeletron
Desconectado
Mensajes: 1.731
A long way to go
|
Hola gente... Depurando, probe una cosa... Llenar una lista generica hasta quedarme sin memoria.. y ver cual es la cantidad de items posibles a agregar en el LIST... La cuestion, es que, aunque haga un TRY CATCH.. Visual Studio, no me controla la escepcion.. que extraño no?
|
|
|
En línea
|
|
|
|
MANULOMM
Desconectado
Mensajes: 559
Erepublik.com
|
mmm si ejecutas el exe te saldra un error de windows y pues claro si estas sin memoria el clr salta una excepcion del Sistema Operativo.
Atentamente,
Juan Manuel Lombana Medellín - Colombia
|
|
|
En línea
|
|
|
|
seba123neo
|
Hola, para mi es porque no es un error "de codigo" digamos, por eso no se va por el catch, es un error que no puede ser controlado como dice el mismo error, es un error de memoria que se ve que va disminuyendo a medida que haces el bucle y ejecutas esa instruccion, por cierto ese bucle nunca termina...
|
|
|
En línea
|
|
|
|
MANULOMM
Desconectado
Mensajes: 559
Erepublik.com
|
bueno pues la naturaleza de las excepciones en .net es que todas hereden de exception.
Hice la prueba a mi me va bien. aunque este equipo es solo 1GB de Ram + Procesador 1.6 Ghz con Win 7. y lo que he tenido es que al correr la prueba exactamente igual a la tuya (pero la lista era de Int's). he tenido que se ha lanzado la excepcion y me ha dicho tanto en count como capacity "134217728" pero este numero varia obviamente de las capacidades en hardware del equipo.
de hecho la excepcion que obtengo es de tipo "System.OutOfMemoryException" y pongo un punto de interrupcion el catch y logra parar obviamente despues de un bloqueo de maquina.
es de aclarar que trabajo con c#, en algunos casos los teams de los lenguajes suelen diferenciar algunas cosillas. puede ser una estas diferencias.
Atentamente,
Juan Manuel Lombana Medellín - Colombia
|
|
|
En línea
|
|
|
|
ABDERRAMAH
Desconectado
Mensajes: 431
en ocasiones uso goto ¬¬
|
La forma chapuzas de evitar eso sería
On error goto error [...]
exit sub error: msgbox("saltó la excepción") end sub
Ésto no soluciona el problema, pero hace que visuabasic no bloquee el programa en ejecución, y en windows, te salta el mensaje de msgbox, pero no te cierra... ahora... tienes que encontrar el fallo, esto es una chapuza para evitar que salte error.
|
|
|
En línea
|
|
|
|
Skeletron
Desconectado
Mensajes: 1.731
A long way to go
|
No quiero solucionar un problema.. Simplemente estaba testeando... queria ver cuantos items me llegan a entrar aproximadamente en un array en mi pc.. nada mas..
Ese error tendria que ser capturado.. SI O SI... El End of FIle, tampoco es error de CODIGO!!.. una divicion por 0, tampoco es error de codigo.. y ningun error en tiempo de ejecucion es error de codigo, sin embargo todos son tomados por el catch..
Para mi, es algo muy raro esto... Alguien podria probarlo con vb.net?
|
|
|
En línea
|
|
|
|
seba123neo
|
en el Catch no se si sabias podes ponerle lo que quieras, manejar la Excepcion que quieras, ponele esto Catch ex As System.OutOfMemoryException y proba...
saludos.
|
|
|
En línea
|
|
|
|
Keyen Night
Desconectado
Mensajes: 496
Nothing
|
Si te das cuenta estás en un bucle infinito que está llenando la memoria cientos de veces por segundo hasta que Windows lo detiene porque ya no hay memoria que usar; Como bien dijeron haya arriba no es un error de código simplemente te quedan sin memoria. Cuando probe tu código efectivamente vi mientras mi memoria se iva saturando de datos hasta que el proceso llego a 1.600.000Kb de memoria en uso y dio el error.
|
|
« Última modificación: 26 Enero 2010, 16:07 pm por Keyen Night »
|
En línea
|
La Fé Mueve Montañas... ...De Dinero
La programación es más que un trabajo es más que un hobby es una pasión...
|
|
|
Skeletron
Desconectado
Mensajes: 1.731
A long way to go
|
YA SE QUE ES UN BUBLE INFINITO!! LO HICE A PROPOSITOO!!!!!
Pero si es un bucle infinito, no IMPORTA!!!.. cuando te quedas sin memoria, salta una excepcion, y TIENE QUE SER CONTROLADA POR EL CATCHª!!!...................!!!!!!!!!!!!!!.............!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! y NO SE ESTA CONTROLANDO!!!!!!!
ES UN ASQUEROSO BUG DE VISUAL!!!
|
|
|
En línea
|
|
|
|
raul338
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
jajaj..... que risa es un error raro, yo lo probe y me entra al catch, deprunado o no, entra igual. Nota, yo tengo el visual 2008 con SP1! Mi teoria antes de probar era que el thread se quedaba sin memoria disponible (sino imaginense, el visual se hubiera cortado tambien xD) entonces no podia seguir haciendo nada, ni catch ni finally, pero es raro. EDIT: viendo mas el detalle de tu error, no se porque te tira "en Microsoft.VisualBasic.dll", a mi me tira solo: "Se produjo una excepción de tipo 'System.OutOfMemoryException'." Tendra algo que ver o son dos versiones españolas distintas??? Mi gran pregunta tambien es porque no tenes el codigo coloreado..... (?
|
|
« Última modificación: 26 Enero 2010, 19:36 pm por raul338 »
|
En línea
|
|
|
|
|
|