Foxtable(狐表)用户栏目专家坐堂 → try catch不能捕获内部函数编译Functions.Complie()报错


  共有4070人关注过本帖树形打印复制链接

主题:try catch不能捕获内部函数编译Functions.Complie()报错

帅哥哟,离线,有人找我吗?
chen37280600
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1279 积分:7953 威望:0 精华:4 注册:2017/12/31 14:53:00
try catch不能捕获内部函数编译Functions.Complie()报错  发帖心情 Post By:2020/2/3 10:45:00 [只看该作者]



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

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

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110575 积分:562771 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1279 积分:7953 威望:0 精华:4 注册:2017/12/31 14:53:00
  发帖心情 Post By:2020/2/3 14:38:00 [只看该作者]

我现在是web前后端分离开发,后端狐表全部都是动态内部函数,所以需要能编译出错时,捕获出来

 回到顶部