Actualmente estoy en un punto muy crucial en mi desarrollo de aplicaciones móviles multiplataforma y podría realmente usar algo de experiencia (como woah) .Manejo de errores de .NET: try/catch VS event VS valor de retorno/status-fields
Para dar un contexto (lo que puede ayudar a responder, espero), estoy desarrollando una aplicación móvil en .NET basada en el práctico marco MonoCross, utilizando VS2010U (no MonoDevelop, sin embargo, eso es para IOS) . La primera plataforma de destino es Android, luego en los "puertos" de IOS y Windows Phone (no realmente si hago las cosas bien).
Ahora que tengo una base sólida, que incluye Business Logic, Data Access Layer, Base de datos, REST webservice, etc. Estoy trabajando e intentando trabajar en el manejo de errores, pero no estoy seguro de qué El mejor enfoque para esto es.
Me dijeron que los bloques try-catch pueden ser éxitos de rendimiento (que es un gran problema en este caso), ¿es
cierto? ¿Debería usarlos con moderación, o simplemente abofetearlos donde sea que se pueda lanzar una excepción? (Me gustaría usarlos en todas mis llamadas a la API SQLite, ya que no sé qué diablos es que están haciendo la mitad del tiempo) .
¿Está utilizando las devoluciones de llamada de eventos como algo malo para el manejo de errores? Se me recomendó usar estos siempre que sea posible , a diferencia de try-catch, por motivos de rendimiento, pero no quiero romper ninguno de los principios y paradigmas de diseño y terminar con el código sloppy-gauh-loppy en todas partes.
La tercera opción, que tiene la menor cantidad de sobrecarga, pero es infinitamente irritante para tratar con, son campos de estado y valores devueltos.
¿Qué piensan? Supongo que estoy buscando alguna dirección general, y tal vez algunas sugerencias sobre dónde y cuándo usar cada una, y cualquier otra técnica que probablemente haya omitido. Por favor, avíseme si se necesitan más detalles, ya que me gustaría darlos.
¡Gracias por tomarse un tiempo para esto!
capturar excepciones es más lento que otras formas de manejo de errores, eso es cierto.El procesamiento de eventos depende completamente de cómo se manejan los eventos. Un valor de retorno sería menos intensivo. Lo más probable es que pueda usar cualquiera de ellos sin problemas, a menos que esté procesando muchos miles de llamadas por segundo. – Wug
Definitivamente voy a tener esto en cuenta. Muy buen punto, gracias! – samosaris
Excelente publicación para el manejo de excepciones en .NET: http://www.codeproject.com/Articles/9538/Exception-Handling-Best-Practices-in-NET – samosaris