Voglio lanciare un'eccezione ma con messaggio personalizzato e persistono anche stacktrace. Ho attraversato vari thread.Throw exception ma persist stack trace
catch (Exception ex)
{
throw; // Message is read only but stacktrace persist
throw ex; // Message is readonly and strack trace also blows .. worst!
throw new CustomException("My exception");// Message can be overridden but stacktrace lost
throw new CustomException("My message",ex);// same as above. However if this constructor in exception class calls same constructor of base class then .. see below
}
Quando si utilizza lo scorso appraoch (con eccezione personalizzata costruttore di chiamare costruttore della classe base), in uscita sullo schermo della morte è qualcosa di simile:
**The remote server returned an error: (401) Unauthorized.**
[WebException: The remote server returned an error: (401) Unauthorized.]
original stack trace
[NewException: newMessage]
New Stack Trace
La cosa buona è che tutto è lì sullo schermo. Ma, in cima, voglio che la mia eccezione visualizzi "nuovo messaggio" e non un messaggio originale.
Quindi riconciliare la mia domanda: COME posso visualizzare sullo schermo della morte la traccia dello stack originale ma con un messaggio di errore personalizzato?
Si tratta di un servizio web di ritorno l'eccezione? – Oded
Nel mio esempio è in effetti una chiamata al servizio web. Tuttavia è irrilevante in quanto l'eccezione avrebbe potuto essere qualcosa di simile a DivisionByZero o sqlException, ecc. L'idea è di far conoscere all'utente la traccia dello stack originale, ma lo sviluppatore personalizza anche il messaggio di eccezione predefinito ad uno più aiutante. – helloworld
No, non è irrilevante. I framework dei servizi Web hanno le loro idee sulle eccezioni. –