Foxtable(狐表)用户栏目专家坐堂 → 内部函数出错直接退出软件


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

主题:内部函数出错直接退出软件

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


加好友 发短信
等级:三尾狐 帖子:758 积分:5408 威望:0 精华:0 注册:2012/10/5 21:53:00
内部函数出错直接退出软件  发帖心情 Post By:2021/2/3 16:13:00 [只看该作者]

内部函数写的代码有问题就直接闪退了,这个能不闪退做报错提示么?

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


加好友 发短信
等级:超级版主 帖子:107182 积分:545159 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/3 16:28:00 [只看该作者]

闪退一般是出现了死循环,这种情况无法报错

 回到顶部
帅哥哟,离线,有人找我吗?
z769036165
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:758 积分:5408 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2021/2/3 17:10:00 [只看该作者]

不是死循环,像出现
Dim e As RequestEventArgs  = args(0)
但是调用函数的时候是Functions.Execute("Task"),没写传入参数,就会直接退
还有写的sql语句,如果列名不正确或其他不正确都会退
[此贴子已经被作者于2021/2/3 17:10:54编辑过]

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


加好友 发短信
等级:超级版主 帖子:107182 积分:545159 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/3 17:19:00 [只看该作者]

我测试不会呀,只会弹出错误提示。做个例子发过来测试一下?

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


 回到顶部
帅哥哟,离线,有人找我吗?
z769036165
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:758 积分:5408 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2021/2/3 18:11:00 [只看该作者]

发现另外的项目不会出现,单独现在做的项目会出现。

 回到顶部
帅哥哟,离线,有人找我吗?
z769036165
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:758 积分:5408 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2021/2/3 22:17:00 [只看该作者]

发现问题出现在BeforeShowErrorMessage上面
里面设置了e.Cancel = True结果就出现的上述的问题那怎么能避免弹出报错窗口又不出现自动闪退的问题呢?这个httpServer服务器一报错,其他人就用不了

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


加好友 发短信
等级:超级版主 帖子:107182 积分:545159 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/4 8:38:00 [只看该作者]

BeforeShowErrorMessage代码有问题。

BeforeShowErrorMessage这事件里的代码要保证绝对不能有错,否则就死循环了:出错触发BeforeShowErrorMessage,里面的代码又出错,又触发BeforeShowErrorMessage。。。。。。。。。。。

 回到顶部
帅哥哟,离线,有人找我吗?
z769036165
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:758 积分:5408 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2021/2/4 9:34:00 [只看该作者]

里面代码
Dim w As DataRow = DataTables("错误信息").AddNew
w("错误信息")= e.Message1
w("时间")= now()
w("备注1")= e.Message2
w("备注2")= e.ex
w("备注3")= e.Event
w.Save
e.Cancel = True
这样写的,好像看起来没问题啊

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


加好友 发短信
等级:超级版主 帖子:107182 积分:545159 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/4 9:42:00 [只看该作者]

这句去掉:w("备注2")= e.ex,ex是一个对象,不是字符串不能直接使用的

ex:       System.Exception类型,返回发生的错误,一般用户不需要使用此参数。


 回到顶部