vb.net 类库 - ado.net 查询的异常处理

vb.net class libary - exception handling for ado.net queries

提问人:Conrad Jagger 提问时间:11/4/2012 最后编辑:Brian Tompsett - 汤莱恩Conrad Jagger 更新时间:7/20/2017 访问量:280

问:

有人可以建议 - 我们想将详细的错误消息记录到文本文件或 sql server 中,以解决我们创建的 .net 库中发生的任何错误。

Try
    'Here we are using the sql command object to fetch the required data
    Catch ex As Exception
    'Here we want to capture detailed error information in a text file or 
    'sql server
Finally
    If Not _SQLCommand Is Nothing Then
        _SQLCommand.Dispose()
    End If
    If Not _Conn Is Nothing Then
        _EConn.Close()
    End If
End Try
vb.net ado.net

评论


答:

0赞 Hamish Smith 11/4/2012 #1

log4net 可以很好地将错误记录到文本文件,或者 syslog 或 AdoNetAppender 可以记录到 SQL Server 数据库。
http://logging.apache.org/log4net/release/config-examples.html

0赞 Rahul Tripathi 11/4/2012 #2

你可以尝试这样的事情:-

Try
 'do some stuff
 Catch ex As Exception
    errorArg = "Error details and description." 
    errorHandle(errorArg, ex)
  Sub errorHandle(ByVal errorArg As String, ByVal ex As System.Exception)
    Dim errorFile As String = "C:\Foldername\errorfile.txt"
    Dim errorWrite As New IO.StreamWriter(errorFile, True)
    Dim machname As String = System.Environment.MachineName.ToString
    Dim close As DialogResult = MessageBox.Show(errorArg & vbCrLf & "Message", "System    Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
    errorWrite.Write("*** ERROR on " & curDate & " @ " & machname & vbCrLf & errorArg & vbCrLf &   ex.ToString & vbCrLf)
    errorWrite.Close()
    If close = DialogResult.OK Then End
  End Sub
0赞 Kapil Khandelwal 11/4/2012 #3

试用 ELMAH 非常适合错误记录。

ELMAH NuGet 包也可用。

此外,配置自定义错误页(在 web.config 中)以避免错误黄页

<configuration>
   <system.web>
      <customErrors defaultRedirect="GenericError.htm" mode="RemoteOnly">
         <error statusCode="500" redirect="InternalError.htm"/>
      </customErrors>
   </system.web>
</configuration>

ELMAH(错误记录模块和处理程序)是一个应用程序范围的错误记录工具,是完全可插拔的。它可以动态地添加到正在运行的 ASP.NET Web 应用程序,甚至可以添加到计算机上的所有 ASP.NET Web 应用程序,而无需重新编译或重新部署。

将 ELMAH 放入正在运行的 Web 应用程序并进行适当配置后,无需更改任何一行代码即可获得以下功能:

  • 记录几乎所有未处理的异常。
  • 用于远程查看重新编码异常的整个日志的网页。
  • 一个网页,用于远程查看任何一个记录的异常的完整详细信息,包括彩色堆栈跟踪。
  • 在许多情况下,即使关闭了 customErrors 模式,也可以查看 ASP.NET 为给定异常生成的原始黄色死机屏幕。
  • 每个错误发生时的电子邮件通知。
  • 日志中最后 15 个错误的 RSS 源。