访问数组/列表后没有代码运行

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】:

问题是因为alertsNothing,所以引发了异常。

解决这个问题的简单方法是将字符串初始化为 -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

【讨论】:

以上是关于访问数组/列表后没有代码运行的主要内容,如果未能解决你的问题,请参考以下文章

使 mongoose.js 查询同步运行

如何在没有工匠的情况下运行 laravel 迁移(使用代码)

关于java代码打包成JAR的运行结果和eclipse中运行结果不一样的问题

访问导致运行时错误的动态数组

访问子节点childNodes

真的有必要使用数组,在子删除后显示完整节点列表的innerHTML吗?