我想知道如何捕获错误,然后在自定义ListBox
或其他内容中显示其详细信息。我们的想法是允许自定义消息显示简单,例如“Woops,出了问题!”但仍然能够提供故障排除信息。如果有人可以帮我构建这段代码,我会非常感激。
所以说我有可能导致错误的代码,比如连接到互联网。我如何能够捕获错误并以单独的形式(弹出窗口)显示它?
如果这个接缝非常简单,我很抱歉,但我对这些东西不熟悉,我只是不喜欢正常的错误窗口。
答案 0 :(得分:4)
使用以下代码向用户输出错误:
Try
'code
Catch ex As Exception
MessageBox.Show(string.Format("Error: {0}", ex.Message))
End Try
我想知道如何捕捉错误然后显示 它在自定义ListBox中的详细信息。
如果您想将错误添加到列表框中:
Try
'code
Catch ex As Exception
listBox1.Items.Add("Whoops, something went wrong!")
End Try
答案 1 :(得分:0)
这是一个可以帮助您入门的代码模板:
Try
'Your code
Catch ex As Exception
MessageBox.Show("Woops, something's went wrong!")
'get troubleshooting info out of ex, stack trace perhaps
End Try
答案 2 :(得分:0)
如果你想要一些超级简单的东西,你可以这样做:
Try
'Try connecting to the internet
Catch ex As WebException
Dim message = String.Format(
"Encountered an error while connecting to internet: {0}", ex.Message)
MessageBox.Show(message)
End Try
但是如果你想要一些更加花哨的东西,我建议你创建一个新的表单,上面可能有一个Label
和RichTextBox
。你可以给它一个构造函数来获取异常并填充表单的控件。我在异常上使用ToString
来显示详细信息,因为这将打印出一个很好的堆栈跟踪,并以递归方式打印出内部异常的任何细节:
Public Sub New(ex As Exception)
InitializeComponent() 'This call is required by Visual Studio.
Me.Label1.Text = String.Format(
"Encountered the following error: {0}", ex.Message)
Me.RichTextBox1.Text = ex.ToString()
End Sub
你可以从你的主表单中调用它:
Try
'Try connecting to the internet
Catch ex As WebException
Dim errorForm = New ErrorForm(ex)
errorForm.Show()
End Try
答案 3 :(得分:0)
您可以编写一个函数来代替MsgBox,例如:
Public Function LogMsgBox(
ex As Exception,
Prompt As String,
Optional Buttons As MessageBoxButtons = MessageBoxButtons.OK,
Optional Title As String = "OIS Error",
Optional ProgrammerNote As String = "",
Optional SuppressMsgBox As Boolean = False,
Optional FormRef As Object = Nothing) As MsgBoxResult
在功能中你可以随心所欲 - 很可能会根据自己的喜好显示一个对话框或表单。
记录错误非常方便,因此您可以获得有关问题的反馈。用户只是倾向于按问题点击而不报告。
另请参阅VB的Application Framework - 它可以捕获用户也无法报告的未处理错误。
答案 4 :(得分:0)
最后我最终得到了这个:
Try
'Code which may error
Catch ex As Exception
MessageBox.Show("Whoops! An error was encountered during the login-in stage. The Server may be offline, un-reachable or your Server Credentials may be in-correct. Please contact U.G Studio for further details. " & _
vbNewLine & "" & vbNewLine & String.Format("Error: {0}", ex.Message))
它允许我显示自定义消息,同时仍保留有关错误的“技术”信息。
感谢大家的帮助!