Ciao a tutti,
sto creando la base di un sito in C#, buona parte e` fatta, ora voglio portare a termine un buon 'error handler'.
Il mio sistema prevede il seguente codice nell''Application_Error' del Global.asax:
Il mio obiettivo e` di nascondere il tutto al cliente, infatti il redirect diventera` un inserimento in un DB ed il cliente verra` rediretto ad una pagina di errore generico con l'ID dell'errore.codice:Exception ex = Server.GetLastError().GetBaseException(); string SourcePage = Server.MapPath (Request.FilePath); string ErrMessage = ex.Message; Server.ClearError (); Response.Redirect ("error.aspx?s=" + SourcePage + "&e=" + ErrMessage);
Ora mi si pone un dubbio: per aumentare la velocita` di correzione del problema, sarebbe utile inserire nel DB la linea dove si e` sollevata l'exception.
Come trovare questa informazione?
Potrei leggerla dallo StackTrace contenuta nell'oggetto Exception, ma e` una stringa, dovrei fare un parser per ricavare l'informazione.
Altrimenti potrei usare StackTrace e StackFrame, solo che ho avuto due problemi: non sono mai riuscito a ricavare la linea dove si e` sollevato l'errore ma solo la linea dove viene dichiarato (se non erro) l'oggetto di tipo StackFrame, in secondo luogo, a quanto ho letto, funziona solo in Debug.
Qualche suggerimento?
Grazie anticipatamente,
Michele.


Rispondi quotando

