以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  内部函数出错直接退出软件  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=160465)

--  作者:z769036165
--  发布时间:2021/2/3 16:13:00
--  内部函数出错直接退出软件
内部函数写的代码有问题就直接闪退了,这个能不闪退做报错提示么?
--  作者:有点蓝
--  发布时间:2021/2/3 16:28:00
--  
闪退一般是出现了死循环,这种情况无法报错
--  作者:z769036165
--  发布时间:2021/2/3 17:10:00
--  
不是死循环,像出现
Dim e As RequestEventArgs  = args(0)
但是调用函数的时候是Functions.Execute("Task"),没写传入参数,就会直接退
还有写的sql语句,如果列名不正确或其他不正确都会退
[此贴子已经被作者于2021/2/3 17:10:54编辑过]

--  作者:有点蓝
--  发布时间:2021/2/3 17:19:00
--  
我测试不会呀,只会弹出错误提示。做个例子发过来测试一下?

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


--  作者:z769036165
--  发布时间:2021/2/3 18:11:00
--  
发现另外的项目不会出现,单独现在做的项目会出现。
--  作者:z769036165
--  发布时间:2021/2/3 22:17:00
--  
发现问题出现在BeforeShowErrorMessage上面
里面设置了e.Cancel = True结果就出现的上述的问题那怎么能避免弹出报错窗口又不出现自动闪退的问题呢?这个httpServer服务器一报错,其他人就用不了

--  作者:有点蓝
--  发布时间:2021/2/4 8:38:00
--  
BeforeShowErrorMessage代码有问题。

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

--  作者:z769036165
--  发布时间: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
这样写的,好像看起来没问题啊

--  作者:有点蓝
--  发布时间:2021/2/4 9:42:00
--  
这句去掉:w("备注2")= e.ex,ex是一个对象,不是字符串不能直接使用的

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