上一篇 | 下一篇

在PB中记录系统出错日志

发布: 2008-6-26 20:40 | 作者: admin | 来源: | 查看: 2次

PowerBuilder应用对象的SystemError事件是处理系统运行错误的最后一道关卡,用来处理最严重的错误,我们可以在此处编写错误处理和可能的恢复代码,简单的措施是给出出错信息。系统的出错信息可从系统的全局变量error中读取。

一个应用系统在用户测试和最初使用过程中,可能会发生一些程序员未意识到或未测出的系统错误,而业务人员往往很难清楚地向技术人员描述这些错误,导致错误信息稍纵即逝。这时,我们可用PowerBuilder应用对象的SystemError事件来处理,将出错信息写入日志文件,程序员根据这些错误信息对程序进行相应的修改。这在系统测试期间非常有效。

处理步骤如下:

1、建一个外部数据源的数据窗口对象,取名为:d_system_error ,各列如下:

Name Type Lenth Dec

enum string 10

Message string 255

where string 255

Object string 255

event string 255

line string 255

2、建一Response型窗口w_system_error,Title设置为:“系统错误,请与技术人员联系!”,并加入控件:

控件名 类型 说明

dw_error datawindow 显示错误信息的数据窗口

Datawindow Object Name 为前所建数据窗口对象d_system_error

cb_exit command button 退出程序

cb_continue command button 继续执行

cb_print command button 打印错误信息

3、编写脚本

①在dw_error的Constructor事件中加入如下脚本:

// 显示系统错误信息并写入出错日志文件

long ll_row

int li_file_no

ll_row = this.insertrow (0)

this.SetItem (ll_row,"errornum",string(error.number)) //错误代码

this.SetItem (ll_row,"message" ,error.text) //错误信息

this.SetItem (ll_row,"where" ,error.windowmenu) //窗口/菜单

this.SetItem (ll_row,"object" ,error.object) //出错控件

this.SetItem (ll_row,"event" ,error.objectevent) //出错事件

this.SetItem (ll_row,"line" ,string(error.line)) //出错行

字号: | 推荐给好友

31/3123>

评分:0

我来说两句