各类异常错误的处理

来源:互联网 发布:战狼2网络上映时间 编辑:程序博客网 时间:2024/04/29 20:01

一、数据窗口错误

在数据窗口中会出现3种类型的错误

l         非法数据项;

l         提取或修改数据时出现错误;

l         访问非法或不存在的属性,或数据失败。

 

RetrieveUpdate错误和DBError事件

在数据窗口中使用RetrieveUpdate函数,应该测试函数返回值以确定程序活动是否成功。

 

       1 RetrieveUpdate函数的返回值

函数

返回值

含义

Retrieve

>=1

Retrieve成功;返回被提取行数

 

- 1

Retrieve失败;触发DBError事件

 

0

没有提取到数据

Update

1

Update成功

 

-1

Update失败;触发DBError事件

 

       如果RetrieveUpdate方法返回-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事件中,可以通过访问设置ActionReturnValue参数来控制事件的结果。

l         Action            定义的值用来控制应用的运行,作为错误的结果,可如下取值:

ExceptionIgnore!

ExceptionSubstituteReturnValue!

ExceptionFail!

l         ReturnValue    数值的数据类型与期望数据窗口对象返回的数值相匹配。当Action的值是ExceptionSubstituteReturnValue!时使用该值。

原创粉丝点击