以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  内部函数如何向上抛出异常  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=160207)

--  作者:lgzhao
--  发布时间:2021/1/24 18:23:00
--  内部函数如何向上抛出异常
蓝老师好,

请问编写的内部函数,不打算在本函数内处理异常,而想主动引发异常,交给上层调用模块的try语句去处理。
该函数内的代码该如何编写呢? 我试了下throw语句,总是不成功。总是在函数内提示错误,而上层却捕捉不到。

我这个应用场景是:  采用数据库事务,集中将分账信息写入总账信息时。每一条总账记录在一个内部函数内通过sql语句执行,但任何一个函数发生错误都必须全部回滚。


谢谢啦 

--  作者:有点蓝
--  发布时间:2021/1/24 21:32:00
--  
这种暂时没有办法,函数自己处理了。

换一种方式,在函数内部try,然后通过返回值判断是否出错,比如函数1:

try
执行sql
catch
return false
end try
return true

外部调用
Dim res As Boolean = Functions.Execute("函数1")
if res = false then
回滚操作
end if

--  作者:lgzhao
--  发布时间:2021/1/25 6:12:00
--  
好的。非常感谢