Una opcion puede ser que todos los errores los caches en el global.asax en el evento onError..
Sería algo como ésto:
Cita: Public Sub Application_OnError(ByVal Sender As Object, ByVal E As EventArgs)
'Obtengo el usuario que esta actualmente firmado
Dim sUser As String = Context.User.Identity.Name
Dim ex As Exception
'Obtengo el último error que se genero
ex = Server.GetLastError().InnerException
'Guardas en una variable el erro:
Dim sError as String
sError = ex.Message & " Descripción = " & ex.StackTrace
'Insertas en la base de datos la informacion...
'...
End Sub
Y si quieres puedes enviarte un correo electronico para informarte del error que ocurrio..
Es una idea general.. ya lo demas dependerá de ti..
Salu2