Foros del Web » Programación para mayores de 30 ;) » .NET »

Abuso de Excepciones

Estas en el tema de Abuso de Excepciones en el foro de .NET en Foros del Web. Hola Foro, quisiera saber si está bien hacer mucho manejo de excepciones (bloques try catch) en muchas partes de la aplicacion. Sobretodo si se tienen ...
  #1 (permalink)  
Antiguo 28/12/2005, 13:52
Avatar de rodri  
Fecha de Ingreso: febrero-2005
Mensajes: 406
Antigüedad: 19 años, 2 meses
Puntos: 2
Abuso de Excepciones

Hola Foro, quisiera saber si está bien hacer mucho manejo de excepciones (bloques try catch) en muchas partes de la aplicacion. Sobretodo si se tienen dos capas: una en un componente y la otra en la pagina aspx y en ambas bloques try catch para el mismo método por ejemplo.

espero q este claro
__________________
0.o Rodri
  #2 (permalink)  
Antiguo 28/12/2005, 13:53
Avatar de rodri  
Fecha de Ingreso: febrero-2005
Mensajes: 406
Antigüedad: 19 años, 2 meses
Puntos: 2
gracias por su colaboracion
__________________
0.o Rodri
  #3 (permalink)  
Antiguo 28/12/2005, 14:18
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Creo que lo suyo es cachear las excepciones posibles y concretas que se puedan dar durante cada proceso, y no las demás genéricas. Pero claro, a veces es imposible saber qué tipos de excepciones van a saltar.
Me ha ocurrido que, por ejemplo, al cachear una excepcion generica en una funcion, desde la que se van a llamar a varios subprocesos (con sus bloques try y catch) salta el cacheo del error en esa funcion, por lo que no me es posible saber en cuál de los procesos ha ocurrido.
Lo que hago es quitar el cacheo momentáneamente para ver qué ocurre, y luego lo vuelvo a poner para no dejarlo descontrolado.
Pero es cierto, hay algo que no veo muy claro. También me irían bien algunas ideas en este sentido.

Gracias a todos!
__________________
..:: moNTeZIon ::..
  #4 (permalink)  
Antiguo 28/12/2005, 16:11
Avatar de rodri  
Fecha de Ingreso: febrero-2005
Mensajes: 406
Antigüedad: 19 años, 2 meses
Puntos: 2
pero, bueno hacer un doble try catch en diferentes capas de la aplicacion?
__________________
0.o Rodri
  #5 (permalink)  
Antiguo 29/12/2005, 02:57
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Mala opción aparte de hacer la misma operación 2 veces, encima sería repetir una operación mucho más lenta, primero intenta usar if u otras opciones en vez de try, y si los utilizas intenta minimizarlos.
  #6 (permalink)  
Antiguo 29/12/2005, 07:49
Avatar de rodri  
Fecha de Ingreso: febrero-2005
Mensajes: 406
Antigüedad: 19 años, 2 meses
Puntos: 2
es decir que try y catch hacen que una aplicacion baje performance? que tanto?
__________________
0.o Rodri
  #7 (permalink)  
Antiguo 29/12/2005, 09:30
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
http://msdn.microsoft.com/library/de...etperftips.asp
Cita:
Throw Fewer Exceptions

Throwing exceptions can be very expensive, so make sure that you don't throw a lot of them. Use Perfmon to see how many exceptions your application is throwing. It may surprise you to find that certain areas of your application throw more exceptions than you expected. For better granularity, you can also check the exception number programmatically by using Performance Counters.

Finding and designing away exception-heavy code can result in a decent perf win. Bear in mind that this has nothing to do with try/catch blocks: you only incur the cost when the actual exception is thrown. You can use as many try/catch blocks as you want. Using exceptions gratuitously is where you lose performance. For example, you should stay away from things like using exceptions for control flow.

Here's a simple example of how expensive exceptions can be: we'll simply run through a For loop, generating thousands or exceptions and then terminating. Try commenting out the throw statement to see the difference in speed: those exceptions result in tremendous overhead.
  #8 (permalink)  
Antiguo 29/12/2005, 10:23
 
Fecha de Ingreso: enero-2004
Mensajes: 310
Antigüedad: 20 años, 3 meses
Puntos: 0
Yo uso los try catch únicamente en la capa de aceso a datos.
__________________
Un saludo,
Trucos
Videos
  #9 (permalink)  
Antiguo 29/12/2005, 13:24
Avatar de rodri  
Fecha de Ingreso: febrero-2005
Mensajes: 406
Antigüedad: 19 años, 2 meses
Puntos: 2
Gracias Jose_minglein2 , muuy util.
Dynk a veces necesito hacer mis try catch en la capa de aplicacion para evitar la muy molesta pantallita amarilla, supongo que como moNTeZIon, primero ver que excepciones agarrar en donde.
__________________
0.o Rodri
  #10 (permalink)  
Antiguo 29/12/2005, 15:59
 
Fecha de Ingreso: enero-2004
Mensajes: 310
Antigüedad: 20 años, 3 meses
Puntos: 0
Rodri, si todas tus funciones de la dataaccess retornan algo, no veras esa pantallita que tu mencionas ;)
__________________
Un saludo,
Trucos
Videos
  #11 (permalink)  
Antiguo 29/12/2005, 17:34
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Aquí parte de un libro al respecto (Exception Management):
http://msdn.microsoft.com/library/de...netchapt06.asp

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #12 (permalink)  
Antiguo 30/12/2005, 09:03
Avatar de rodri  
Fecha de Ingreso: febrero-2005
Mensajes: 406
Antigüedad: 19 años, 2 meses
Puntos: 2
es cierto, muchas gracias. tengo una Duda mas de DataSources con manejo de Excepciones pero mejor creo un nuevo thread, gracias.
__________________
0.o Rodri
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:34.