Aquí está la situación. Quiero que todas las excepciones en doStuff() aparezcan en el código para que se manejen en un nivel superior.Excepción de resubida de Ruby con argumento de cadena adicional
También me gustaría grabar la frecuencia cualquier excepciones están sucediendo en hacerTarea() a un nivel superior, así, y actualmente estoy haciendo esto:
begin
doStuff()
rescue Exception =>
raise e, "specific error to log in a db"
código hacerTarea lanzar decenas de excepciones, y quiero capturar cada uno de estos eventos para poner en el db. Hay un doStuff2(), que también puede arrojar instrucciones idénticas, y quiero saber de qué función provienen.
Agregando la cadena adicional, parece que cambia la excepción en sí misma, y pierdo todo el formato agradable y la información de rastreo que tenía la excepción original.
¿Alguna sugerencia sobre cómo puedo volver a publicar la excepción original, pero también realizar un seguimiento de todas las excepciones que se producen dentro de doStuff()?
hacerTarea() era sólo de pseudo código, lo siento. El problema es que no puedo registrar la excepción aquí. El registro debe ocurrir a un nivel superior. Esta aplicación es 'tonta' y no sabe nada sobre bases de datos o registro. Sé que no puedo plantear 2 excepciones simultáneamente, pero esto resolvería mi problema. Uno de ellos sería atrapado y conectado, y el otro aún aparecería en el código. –