以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  try catch问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=61321)

--  作者:ShotHit
--  发布时间:2014/12/10 21:14:00
--  try catch问题
使用场景,自定义录入界面四中。点击新增客户按钮后,打开客户录入窗体。这个时候不做录入操作,直接关闭窗口。
代码:
e.Form.DropDownBox.CloseDropdown(False)
Dim r As Row = Tables("Tb_CusInfo").AddNew()
Forms("客户资料").Open()
Try
      MessageBox.Show("1")
      r.Save()
      MessageBox.Show("2")
      Dim tbl As Table = Tables("客户筛选_tbCus")
Catch ex As Exception
      MessageBox.Show("3")
End Try

由于字段不能为空的约束导致r.Save()中插入异常。

理论上输出为:1,3(r.Save()后面的代码不能执行)
实际上输出为:1,2(r.Save()后面代码执行了)

也就是说,Try Catch 没有起作用。
在论坛上也看到过类似问题的帖子,但是没有明确解答。

请问,对于r.Save这种保存,Try Catch如何使用?
      
以上,谢谢。

--  作者:有点甜
--  发布时间:2014/12/10 21:16:00
--  

 try Catch 不能捕捉 save 的错误。

 

 而且 save 的错是不能捕捉的,你应该在代码中检测是否符合在save


--  作者:ShotHit
--  发布时间:2014/12/10 23:03:00
--  
3Q 目前是这样处理的。

狐表中,Try Catch 哪些异常是可以捕获,而哪些是不能捕获的?

以上,谢谢。

--  作者:有点甜
--  发布时间:2014/12/11 9:02:00
--  
try Catch 可以捕捉一些常规性的错误,但是跟表相关的错误,都不能捕捉。