一、数据窗口错误
在数据窗口中会出现3种类型的错误
l 非法数据项;
l 提取或修改数据时出现错误;
l 访问非法或不存在的属性,或数据失败。
Retrieve、Update错误和DBError事件
在数据窗口中使用Retrieve或Update函数,应该测试函数返回值以确定程序活动是否成功。
表1 Retrieve和Update函数的返回值
函数 | 返回值 | 含义 |
Retrieve | >=1 | Retrieve成功;返回被提取行数 |
| - 1 | Retrieve失败;触发DBError事件 |
| 0 | 没有提取到数据 |
Update | 1 | Update成功 |
| -1 | Update失败;触发DBError事件 |
如果Retrieve和Update方法返回-1,数据窗口将触发DBError事件。数据窗口控制会自动显示一个描述来自DBMS错误信息的信息框。
但在许多情况下,用户希望在DBError事件中编写自己的处理程序,从而取消默认信息框。可参考下表:
表2取消默认信息框的办法
目的 执行内容 |
提取DBMS的错误代码 使用DBError事件的SQLDBCode |
提取DBMS消息文本 使用DBError事件的SQLErrText |
取消默认消息框 指定action/Return代码为1 |
二、属性、数据表达式和Error事件中的错误
数据或属性表达式在运行中若出现错误,系统会立即触发数据窗口控制的Error事件。(Web控件和JavaBeans组件不支持Error事件)。
在PB中,当使用数据或属性表达式时,PowerScript编译器只检查语法,数据属性的每一项内容在执行时都会被评测。
PB编译器在编译程序时检查不出数据窗口中不存在的列和拼错了的属性名,但运行时,PB会触发数据窗口控件的Error事件。
Error事件的参数提供有关出错信息,可以通过检查参数的值来确定出错原因。例如,获取内部错误号和错误文本、导致出错的对象名、出现错误的程序代码等、Error事件参数提供的信息对于调试未经编译器检查的表达式极有帮助。
Error事件被触发时,可使应用忽略错误并继续运行,但会根据出错情况,返回不同的值,或触发SystemError事件使错误升级。在Error事件中,可以通过访问设置Action和ReturnValue参数来控制事件的结果。
l Action 定义的值用来控制应用的运行,作为错误的结果,可如下取值:
ExceptionIgnore!
ExceptionSubstituteReturnValue!
ExceptionFail!
l ReturnValue 数值的数据类型与期望数据窗口对象返回的数值相匹配。当Action的值是ExceptionSubstituteReturnValue!时使用该值。