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)) //出错行
