以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  try catch不能捕获内部函数编译Functions.Complie()报错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=145636)

--  作者:chen37280600
--  发布时间:2020/2/3 10:45:00
--  try catch不能捕获内部函数编译Functions.Complie()报错


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2020/2/3 11:12:00
--  
foxtable很多用法都自己处理了错误,没有抛出异常,这确实是一个弊端,但是暂时没有办法,动态函数,需要先保证代码是可以编译通过的。

至于代码中的逻辑错误可以在动态代码里使用try

Dim Code As String
Code = "try" & vbcrlf
Code = Code & "Dim Val1 As Integer = 1" & vbcrlf
Code = Code & "Dim Val2 As Integer = 0" & vbcrlf
Code = Code & "Dim Sum As Integer = Val1 / Val2" & vbcrlf
Code = Code & "Return Sum" & vbcrlf
Code = Code & "Catch ex As Exception" & vbcrlf
Code = Code & "msgbox(ex.message)" & vbcrlf
Code = Code & "return -1" & vbcrlf
Code = Code & "end try"
Output.Show(code)
Functions.remove("Sum")
Functions.Add("Sum",Code)
Functions.Complie()


Dim a = Functions.Execute("Sum")
If a = -1 Then
    msgbox("出错")
End If

--  作者:chen37280600
--  发布时间:2020/2/3 14:38:00
--  
我现在是web前后端分离开发,后端狐表全部都是动态内部函数,所以需要能编译出错时,捕获出来