Foxtable(狐表)用户栏目专家坐堂 → Try Catch 语句无法捕获错误


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

主题:Try Catch 语句无法捕获错误

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


加好友 发短信
等级:童狐 帖子:257 积分:1971 威望:0 精华:0 注册:2012/12/20 8:21:00
  发帖心情 Post By:2014/2/28 10:52:00 [只看该作者]

Dim t As Table = e.Form.Controls("Table1").Table
Try
    t.DataTable.DeleteFor("dwmc is null")
    MessageBox.Show(1)
    t.AllowAddNew=False
    t.AllowEdit=False
    t.AllowDelete=False
    MessageBox.Show(2)
    t.DataTable.Save
    MessageBox.Show(3)
    e.Form.Controls("txtZt").Text="查看状态"
    MessageBox.Show(4)
    Functions.Execute("ButtonZt")
    MessageBox.Show(5)
Catch ex As Exception
    MessageBox.Show("关键字重复或空值,不能保存!")
End Try

在2后出错,问题就在    t.DataTable.Save 执行后,没有跳到catch
[此贴子已经被作者于2014-2-28 10:57:41编辑过]

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


加好友 发短信
等级:童狐 帖子:257 积分:1971 威望:0 精华:0 注册:2012/12/20 8:21:00
  发帖心情 Post By:2014/2/28 10:58:00 [只看该作者]

我发了个视频上来
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:录像1.rar


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/2/28 11:09:00 [只看该作者]

没有跳转到Try Catch是正常的,也没有显示3,说明出错之后,其他代码没有执行,并没有如你之前所言,还执行了后面你的代码。

其实一开始就告诉你原因了,有些错误foxtable自己捕获并提示了,用try catch没有用,需要用:

http://www.foxtable.com/help/topics/2655.htm

 

说了这么多回合,又回到原点了,我还帮你写了这个事件的例子的。

[此贴子已经被作者于2014-2-28 11:09:32编辑过]

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


加好友 发短信
等级:童狐 帖子:257 积分:1971 威望:0 精华:0 注册:2012/12/20 8:21:00
  发帖心情 Post By:2014/2/28 11:22:00 [只看该作者]

但是你关闭出错提示后,他又继续执行3,4,5了
BeforeShowErrorMessage 中的e.cancel=true 只是不提示出错消息,并没有办法,把出错跳转到catch,他还是执行完出错后后代码,象其他编程工具,如vb.net,ACCESS 出错后,就不会执行后继续的代码了,请狐爸给我解决方案,不在狐表中设置一些事件,是有原因的,最大的问题在于,狐表中的表不能触发事务回滚,这一点中ACCESS很象,但稍为大一天的数据库,都会用SQL SERVER 

我要疯了



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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/2/28 11:29:00 [只看该作者]

1、定义一个整数型的public变量
 
2、原来的代码改为:
 
变量名 = 100
Dim t As Table = e.Form.Controls("Table1").Table
If e.Form.Controls("txtZt").Text<>"查看状态" Then
    t.DataTable.DeleteFor("dwmc is null")
    t.AllowAddNew=False
    t.AllowEdit=False
    t.AllowDelete=False
    t.DataTable.Save
    if 变量名 = 100 Then
        e.Form.Controls("txtZt").Text="查看状态"
    End if
End If
if 变量名 = 100 Then
     Functions.Execute("ButtonZt")
     变量名 = 0
End if
 
3、BeforeShowErrorMessage 事件代码设置为:
 
if 变量名 = 100 then
    变量名 = 0
    MessageBox.Show("关键字重复或不能为空,请检查!")
end if


 回到顶部
总数 25 上一页 1 2 3