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


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

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

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


加好友 发短信
等级:婴狐 帖子:20 积分:187 威望:0 精华:0 注册:2014/2/13 16:40:00
  发帖心情 Post By:2014/2/27 13:34:00 [只看该作者]

这个不行,出错的地方应该是t.DataTable.Save,它后面的代码还会执行的

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


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

出错就不会执行后面的代码了

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


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

Dim t As Table = e.Form.Controls("Table1").Table
Try
    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
        MessageBox.Show("dd")
        e.Form.Controls("txtZt").Text="查看状态"
    End If
    Functions.Execute("ButtonZt")
Catch ex As Exception
    MessageBox.Show("关键字重复或空值,不能保存!")
End Try

在t.DataTable.Save出错后,还是会执行后后面的  
        MessageBox.Show("dd")
        e.Form.Controls("txtZt").Text="查看状态"

不会在出错后,直接跳到 Catch ex As Exception

这个该如何解决?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/2/28 8:42:00 [只看该作者]

你这个需求,完全不应该在这里纠结, 限制重复的话,应该在DataColChangIng中去控制. 哪有等报错出现重复再捕获错误的

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


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

DataColChangIng控制,已经写好了,这不是我要的,我要的是在窗口里捕获,并截取

[此贴子已经被作者于2014-2-28 8:43:19编辑过]

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


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

bin,还有没有其他办法?

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


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

这本身对于狐表来说,也是一个大BUG,在Try Catch 出错了,怎么还能往下执行,不符合逻辑啊!

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


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

t.DataTable.Save  出错,绝对不会执行:

 

MessageBox.Show("dd")
e.Form.Controls("txtZt").Text="查看状态"
 
你的错误发生在:
 
Functions.Execute("ButtonZt")
 
 
其实你前后用messagebox.show调试一下,截知道到底是哪一行出错了。
[此贴子已经被作者于2014-2-28 9:43:07编辑过]

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


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

狐爸,Functions.Execute("ButtonZt"),没有问题,我试着在表里增加一个重复值,就跳错(如图),不是增加重复值就没有问题
另,这个没有单步执行,调试起来真得很不方便.

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


[此贴子已经被作者于2014-2-28 10:36:15编辑过]

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


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

你执行看看会显示几个数字,就知道错误出在那里了:
 
Dim t As Table = e.Form.Controls("Table1").Table
Try
    If e.Form.Controls("txtZt").Text<>"查看状态" Then
        MessageBox.Show("1")
        t.DataTable.DeleteFor("dwmc is null")
        MessageBox.Show("2")
        t.AllowAddNew=False
        t.AllowEdit=False
        t.AllowDelete=False
        MessageBox.Show("3")
        t.DataTable.Save
        MessageBox.Show("4")
        e.Form.Controls("txtZt").Text="查看状态"
        MessageBox.Show("5")
    End If
    MessageBox.Show("6")
    Functions.Execute("ButtonZt")
    MessageBox.Show("7")
Catch ex As Exception
    MessageBox.Show("关键字重复或空值,不能保存!")
End Try
 
 
[此贴子已经被作者于2014-2-28 10:41:50编辑过]

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