【问题标题】:VB.net Try Catch. Keep the Loop after the CatchVB.net 试试 Catch。接球后保持循环
【发布时间】:2016-06-20 19:02:42
【问题描述】:

我正在使用 Try Catch,我想将其他类型的 Form2.ListBoxes 中的项目添加到 Form3.ListBoxes 中。但它在Catch 异常之后停止添加。所以我想在异常被捕获后保留Loop

我的程序获取产品并展示相同的产品,但采用另一种类型(例如:我有一件带有品牌的 T 恤,但我想要另一个品牌的“相同”T 恤)。

ListBox5 是我在 Form1 中添加的数量。我加载图像要清楚。 Form2 列表框按顺序排列(ListBox1,ListBox2 ...)。 Form2 和 Form3 的设计相同。

Dim ConnectionString As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Application.StartupPath & "\Tabela_Precos.xlsx; Extended Properties=Excel 12.0;")
        ConnectionString.Open()

        Dim ds As New DataSet
        Dim dt As New DataTable
        ds.Tables.Add(dt)
        Dim da

For i = 0 To Form1.ListBox1.Items.Count - 1

        Dim str As String = Form1.ListBox1.Items(i).ToString
        Dim prod As String = str.Substring(2, 3)
        da = New OleDbDataAdapter("SELECT * FROM [Mesa$] WHERE Format([Ref], ""000000000"") like '%" & prod & "%'", ConnectionString)

        da.Fill(dt)
        Try
            ListBox1.Items.Add(dt.Rows(i).Item(0))
            ListBox2.Items.Add(dt.Rows(i).Item(1))
            ListBox3.Items.Add(dt.Rows(i).Item(3))
            ListBox4.Items.Add(dt.Rows(i).Item(5))
            ListBox5.Items.Add(Form1.ListBox5.Items(i))
            ListBox6.Items.Add(ListBox4.Items(i) * ListBox5.Items(i))
        Catch ex As Exception
        End Try
    Next

我需要 Try-Catch。我正在做一个查询,如果数据库中不存在该行,它就会停止。停止后如何继续循环?

这些是程序正在运行的图像(它们已被编辑):

Form1

Form2

Form3

【问题讨论】:

  • 尝试使用On Error Resume NextOn Error GoTo 可能会有帮助
  • 我认为有帮助,因为我可以写出数量,但仍然没有写出我认为很好的那些......但我仍然更喜欢 Try Catch

标签: vb.net loops listbox try-catch


【解决方案1】:

当您说“在捕获后保持循环”时,您已经自己回答了这个问题。您希望循环继续继续或移动到下一个迭代。所有这些都是 VB 关键字,我建议您查看 For Next Statement 以了解 For 循环的工作原理。

这是您可以实现此目的的几种方法之一。

没有错误处理,只是忽略并继续:

Try
    ...
Catch ex As Exception
    Continue For
End Try

【讨论】:

  • 我忘了说。我试过Continue For 但它不起作用...,Continue ForFinally 之后说“从'Finally' 中分支出来是无效的
  • @Silvestre 道歉。删除了那个。初始示例将满足您的需求。
  • 这里甚至不需要Continue For。如果捕获到异常,代码将继续使用End Try 之后的下一条语句,在您的示例中为NextTry it online
  • @Silvestre 逐行调试您的代码。也可以通过异常进行调试。
  • @AlexB。我没有太多经验,你能解释一下吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-01
  • 2021-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多