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


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

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

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


加好友 发短信
等级:童狐 帖子:257 积分:1971 威望:0 精华:0 注册:2012/12/20 8:21:00
Try Catch 语句无法捕获错误  发帖心情 Post By:2014/2/27 10:06:00 [只看该作者]

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

出错如下(后台是SQL server)

此主题相关图片如下:1.jpg
按此在新窗口浏览图片

搜索了论坛 说要用  BeforeShowErrorMessage,这个没有示例,不知道怎么做?



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


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

这类错误要用BeforeShowErrorMessage  http://www.foxtable.com/help/topics/2655.htm

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


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

上面这个帮助看过了,怎么用?给示例

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


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

帮助不是介绍得很清楚了吗?

想要跳过所有的话就直接设置 e.cancel=true

想要获得其他属性进行判断是否 跳过也提供了一下属性

Event:   字符型,返回发生错误的事件名称
Message1: 字符型,返回简明错误信息
Message2: 字符型,返回详细错误信息
Cancel:  逻辑型,设为True将禁止系统显示错误信息。
ex:       System.Exception类型,返回发生的错误,一般用户不需要使用此参数。

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


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

看不懂

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


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

你有去看了,有去试了吗? 就一个属性而已. 就一句代码而已. 后面也加上了中文描述.  


这,有什么不懂得? 真是难以相信!

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


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

呵呵,楼主,就是在项目属性中找到这个事件,写上一行代码:

 

e.cancel = true

 

如此简单而已,bin在4楼讲述得很清楚了,你先测试一下嘛,直接就说看不懂,难怪bin差点崩溃,因为没办法讲得更清楚了。


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


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

bin,就差两个字“项目”,我在窗口里,表里找表半天没有找到,原来在项目里,

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/2/27 10:53: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
    e.Form.Controls("txtZt").Text="查看状态"
End If
Functions.Execute("ButtonZt")
变量名 = 0
 
3、BeforeShowErrorMessage 事件代码设置为:
 
if 变量名 = 100 then

    变量名 = 0
    MessageBox.Show("关键字重复或不能为空,请检查!")
end if


 
 

[此贴子已经被作者于2014-2-27 14:23:03编辑过]

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


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

谢谢狐爸的耐心回答

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