访问数组/列表后没有代码运行
Posted
技术标签:
【中文标题】访问数组/列表后没有代码运行【英文标题】:No code run after accessing arrays/lists 【发布时间】:2013-09-22 14:10:57 【问题描述】:我真的被这个难住了......
在运行我的代码时,程序只是......在我尝试对表单加载事件中的数组或列表执行任何操作后,它不会运行其余代码,这是我的代码:
Public Shared alerts As String()
Private Sub Popup_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Location = New Point(Screen.PrimaryScreen.WorkingArea.Width - Me.Width, Screen.PrimaryScreen.WorkingArea.Height - Me.Height)
' Check for alerts
If My.Settings.hasadmin = False Then
MsgBox("test1")
pb_alert.Visible = True
createAlert("Some functions require admin privileges.")
End If
End Sub
Private Sub createAlert(ByVal msg As String)
MsgBox("test2")
updateAlerts()
MsgBox("test5")
End Sub
Private Sub updateAlerts()
MsgBox("test3")
Dim length = alerts.Length
MsgBox("test4")
End Sub
我不知道为什么会这样......
即将出现的消息框是: “测试1” “测试2” “测试3” 然后什么都没有,因为我访问了警报数组?
我不知道,请帮忙!
我也没有看到任何错误或编译问题或任何东西!
程序在此之后继续,但它只是不会显示其他消息框,我当然想用实际代码替换它们。
【问题讨论】:
【参考方案1】:问题是因为alerts
是Nothing
,所以引发了异常。
解决这个问题的简单方法是将字符串初始化为 -1 大小,使其为空数组。
Public Shared alerts As String(-1)
正确的方法是在尝试使用之前测试 Nothing。
If alerts IsNot Nothing Then
' Do something with it
您必须做的另一件事是向加载事件添加异常处理或添加AppDomain unhandled exception handler 或处理WinforsFormsApplicaBase UnhandledException event。
Load event:
Try
Catch theException As Exception
Call MsgBox(theException.Message)
End Try
【讨论】:
以上是关于访问数组/列表后没有代码运行的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有工匠的情况下运行 laravel 迁移(使用代码)