La función RutinaError se utiliza cada vez que un error es cachado en nuestro código. Recibe 4 parámetros: mensaje de error, ubicación donde ocurrió el error, una cadena cualquiera que nos permite enviar más información y por último el nombre de la rutina donde ocurrió el error.
Como vemos, no es necesario especificar ningún correo origen o destino. Al final explicaremos esto.
A continuación tenemos las rutinas involucradas:
Function RutinaError(ByVal strMsg As String, ByVal strTrack As String, ByVal StrMoreBody As String, ByVal StrNombreRutina As String) As String
Dim MensajeGeneralError As String MensajeGeneralError = " <image src='Advise.gif'>" MensajeGeneralError += "<span style='color:red;font-weight:bold;size:11px;font-family:arial;'" MensajeGeneralError += "<b> Ha ocurrido un error en la comunicación. Puede ser ocasionado por saturación en el sistema o por su conexión de Internet. Por favor intente de nuevo más tarde.</b>" MensajeGeneralError += "</span><br><br>" Dim StrDest As String = "" StrDest += "user@mipagina.com Dim StrRem As String = "" StrRem += "errores@mipagina.com" Dim strServerName As String = Request.ServerVariables("LOCAL_ADDR") Dim StrRemoteAddr As String = Request.ServerVariables("REMOTE_ADDR") Dim strBody As String strBody = "<FONT face='Verdana' size='1'>" strBody += "<b>Servidor: </b>" & strServerName & "<br><br>" strBody += "<b>Mensaje: </b>" & strMsg & "<br><br>" strBody += "<b>Error: </b>" & strTrack & "<br><br>" strBody += "<b>Rutina: </b>" & StrNombreRutina & "<br><br>" strBody += "<b>IP Cliente: </b>" & StrRemoteAddr & "<br><br>" strBody += StrMoreBody strBody += "</FONT>" Dim StrSubject As String = "[" & strServerName & "] Problema en " & Request.ServerVariables("URL") 'ENVIO DE CORREO If InStr(strBody, "aborted") = 0 Then EnvioCorreo(StrDest, StrRem, StrSubject, strBody) Return MensajeGeneralError |
Sub EnvioCorreo(ByVal strPara As String, ByVal strDe As String, ByVal strTitulo As String, ByVal strCuerpo As String)
Dim objCorreo As New System.Web.Mail.MailMessage objCorreo.To = strPara objCorreo.From = strDe objCorreo.Subject = strTitulo objCorreo.Body = strCuerpo objCorreo.BodyFormat = MailFormat.Html System.Web.Mail.SmtpMail.Send(objCorreo) |
Veamos un pequeño ejemplo de cómo se implementaría:
Try
{... aquí ocurrirá algún error ...}
Catch ex As Exception
Dim StrMensaje As String = ""
StrMensaje = RutinaError(ex.Message, ex.StackTrace, "Más texto", "RutinaX()")
Response.Write(StrMensaje)
End Try
Los correos han sido especificados dentro de RutinaError y no dentro del bloque Catch. De este modo cuando el correo errores@mipagina.com cambie a errores@mipaginanueva.com entonces sólo será necesario un pequeño cambio y todos los errores que se generen en nuestro sitio irán a parar al nuevo correo.
Si tienen alguna duda de cómo implementarlo no duden en contactarnos.
No hay comentarios.:
Publicar un comentario