尝试捕捉不工作的VB。净额
嗨!我对VB中的异常处理有问题。NET和AutoCAD Objectarx 2012。
当我用宏连接到数据库时,问题就出现了。
项目1:So works(Try-Catch捕捉错误):
---------------------------------------------------------
1.VB。NET->新建类库
<CommandMethod("TEST")> _Public Shared Sub TEST()
Dim acaddoc As Autodesk.AutoCAD.Interop.AcadDocument = AcadApp.ActiveDocument
Dim f As frmTest = New frmTest
f.btnTest.PerformClick()
f.ShowDialog()
End Sub
2、新增表格(frmTest)
Public Class frmTestPrivate Sub btnTest_Click(sender As System.Object, e As System.EventArgs) Handles btnTest.Click
Try
Dim d As Double = "test"
MsgBox("OK")
Catch ex As Exception
MsgBox("ERROR")
End Try
End Sub
End Class
3.当我使用Autocad(Netload,TEST)运行te宏时,MsgBox会显示错误消息(“错误”)。
项目2:不工作(Try Catch no捕捉错误):
----------------------------------------------------------------
1.VB。NET->新建类库
2、新增表格(frmTest)
3、使用数据源向导添加数据源。
4、将数据库表与Datagridview绑定。
5.AutoCAD中的Build->NETLOAD->TEST
代码:
Try
Dim d As Double = "TEST"
Me.TervezokTableAdapter.Fill(Me.ACADDBDataSet.Tervezok)
lblServerState.Text = "Online"
Catch ex As Exception
lblServerState.Text = "Offline"
End Try
这将出现在AutoCAD中:
http://kepfeltoltes.hu/110711/hiba2_www.kepfeltoltes.hu_.png
当我注释掉“Dim d As Double=“TEST”行并断开互联网连接(手动抛出错误)时,出现以下情况:
http://kepfeltoltes.hu/110711/hibaa_www.kepfeltoltes.hu_.png
我的问题是,为什么在第二种情况下例外不起作用?
也欢迎回答! 在Try中,您已将d声明为double,但为其分配了一个字符串:
Try
Dim d As Double = "test"
MsgBox("OK")
Catch ex As Exception
MsgBox("ERROR")
End Try
试着先解决这个问题。
我故意这么做,是否应该捕捉异常。 尺寸d为双=“测试”
不应编译。。。因此,您将无法运行程序来测试错误。。。。。除非VB不是类型安全的。
但这在他的案例中起到了作用。我可以在AutoCAD中编译和运行。此时会出现msgbox错误消息,这是正常的。我想要这个。
有必要在他的案例中获得同样的结果。另一方面,链接的错误消息出现在那里,并且没有msgbox(与PROJECT1 his案例不同)。
这就是问题所在。但我同时意识到了解决方案:
不允许导入Autodesk。AutoCAD。运行时命名空间。然后捕捉异常就可以了。(也包括项目1和2)。
谢谢! 尝试更改此行:
Catch ex As System.Exception
页:
[1]