hur.cn - 华软网

 热门搜索

公用错误捕获模块的开发

  作者:未知    来源:网络    更新时间:2019/5/10
公用毛病捕捉模块的开发
----------------------------------------------------------------------------

----
转载  来源http://www.study01job.com文章库 PB论坛
在一个应用程序中,不论什么时候发生毛病,都能够触发Application对象的

SystemError事件(个另外,数据窗口的DBError、ItemError事件不会触发SystemError

,以后再讨论),在该事件中能够措置惩罚全局对象Error的信息,以便用户清楚毛病的情况

,而且另有机遇继续执路程序,否则整个应用可能就会关闭了。 
 程序设计思绪很简单,只需在Application对象的SystemError事件中打开一个公用的错

误措置惩罚窗口就能够了。毛病措置惩罚窗口显示毛病信息,而且提供‘继续’照旧‘中断’的

选择。能够设计一个External类型的数据窗口,用来显示这些毛病信息。这里提供的程

序对照有用的一点是,将PB所有能够被SystemError捕捉的毛病都翻译成了汉语,这点我

相信对照受中国用户的欢迎,读者能够拿来直接运用。毛病信息显示窗口的程序以下: 
String ls_ErrMsg 

Choose Case error.number 
Case 1 
ls_ErrMsg = "被零除" 
Case 2 
ls_ErrMsg = "引用空对象" 
Case 3 
ls_ErrMsg = "数组越界" 
Case 4 
ls_ErrMsg = "枚举值超越函数范围" 
Case 5 
ls_ErrMsg = "函数中遇到负值" 
Case 6 
ls_ErrMsg = "指定的数据窗口行/列无效" 
Case 7 
ls_ErrMsg = "联接引用时,出现不可解决的外部引用" 
Case 8 
ls_ErrMsg = "引用带有空下标的数组" 
Case 9 
ls_ErrMsg = "DLL函数未在当前程序中" 
Case 10 
ls_ErrMsg = "DLL函数不支持的参数类型" 
Case 11 
ls_ErrMsg = "对象资料已逾期,必需转化为当前版本" 
Case 12 
ls_ErrMsg = "数据窗口列类型与GetItem类型不匹配" 
Case 13 
ls_ErrMsg = "不可知的属性引用" 
Case 14 
ls_ErrMsg = "为外部函数打开毛病DLL库" 
Case 15 
ls_ErrMsg = "毛病调用外部函数" 
Case 16 
ls_ErrMsg = "超越最大字符串的长度" 
Case 17 
ls_ErrMsg = "数据窗口控件中引用的数据窗口对象不存留" 
Case 18 
ls_ErrMsg = "函数未前往值" 
Case 19 
ls_ErrMsg = "不能将任意变量中NAME转化为NAME" 
Case 20 
ls_ErrMsg = "没有成功地准备好数据库命令" 
Case 21 
ls_ErrMsg = "运行时,不正确地引用函数" 
Case 22 
ls_ErrMsg = "不可知的对象类型" 
Case 23 
ls_ErrMsg = "不能将NAME类型的对象赋值为NAME类型的对象" 
Case 24 
ls_ErrMsg = "函数调用与其定义不匹配" 
Case 25 
ls_ErrMsg = "DOUBLE或REAL表达式溢出" 
Case 26 
ls_ErrMsg = "不支持对NAME字段的赋值" 
Case 27 
ls_ErrMsg = "非整型指数不能为负" 
Case 28 
ls_ErrMsg = "VBX毛病:NAME" 
Case 29 
ls_ErrMsg = "ANY变量需要非整组值" 
Case 30 
ls_ErrMsg = "外部对象不支持数据类型:NAME" 
Case 31 
ls_ErrMsg = "不支持外部对象数据类型:NAME" 
Case 32 
ls_ErrMsg = "调用外部对象函数NAME时,未找到名字" 
Case 33 
ls_ErrMsg = "调用外部对象函数NAME时,参数类型分歧法" 
Case 34 
ls_ErrMsg = "调用外部对象函数NAME时,运用不正确的参数数目" 
Case 35 
ls_ErrMsg = "毛病调用外部对象函数NAME" 
Case 36 
ls_ErrMsg = "访问外部对象属性NAME时,未找到名称" 
Case 37 
ls_ErrMsg = "访问外部对象属性NAME时,类型不匹配" 
Case 38 
ls_ErrMsg = "询问外部对象属性NAME时,下标数目不正确" 
Case 39 
ls_ErrMsg = "毛病访问外部对象属性NAME" 
Case 40 
ls_ErrMsg = "与表达式中任意数据类型不匹配" 
Case 41 
ls_ErrMsg = "表达式中有分歧法的任意数据类型" 
Case 42 
ls_ErrMsg = "在DLL函数NAME中,运行时所指定的参数类型与所要求的参数类型不相同" 
Case 43 
ls_ErrMsg = "父对象不存留" 
Case 44 
ls_ErrMsg = "祖先的函数中具有发生冲突的参数及前往类型" 
Case 45 
ls_ErrMsg = "外部表溢出" 
Case 46 
ls_ErrMsg = "空的对象引用不能被赋值或传送给同类型的变量" 
Case 47 
ls_ErrMsg = "变量需要数组值" 
Case 48 
ls_ErrMsg = "数组的巨细与对象的转换不匹配" 
Case 49 
ls_ErrMsg = "数组的类型与对象的转换不匹配" 
Case 50 
ls_ErrMsg = "分布服务毛病" 
Case 51 
ls_ErrMsg = "函数或事件的参数分歧法" 
Case 52 
ls_ErrMsg = "分布通讯毛病" 
Case 53 
ls_ErrMsg = "未激活所需服务器" 
Case 54 
ls_ErrMsg = "服务器未接受请求" 
Case 55 
ls_ErrMsg = "请求非正常终止" 
Case 56 
ls_ErrMsg = "非完整地响应请求" 
Case 57 
ls_ErrMsg = "未联接" 
Case 58 
ls_ErrMsg = "对象实例不存留" 
Case 59 
ls_ErrMsg = "分歧法的列范围" 
Case 60 
ls_ErrMsg = "分歧法的行范围" 
Case 61 
ls_ErrMsg = "将NUMBER维数组分歧法地转换成对象" 
Case 62 
ls_ErrMsg = "服务器忙" 
Case 63 
ls_ErrMsg = "无前往值的函数或事件用于表达式" 
Case 64 
ls_ErrMsg = "赋值需要数组对象" 
Case Else 
ls_ErrMsg = "其余毛病" 
End Choose 

dw_error.insertrow (0) 
dw_error.setitem (1,"errornum",string(error.number)) 
dw_error.setitem (1,"message" ,ls_ErrMsg) 
dw_error.setitem (1,"where"   ,error.windowmenu) 
dw_error.setitem (1,"object"  ,error.object) 
dw_error.setitem (1,"event"   ,error.objectevent) 
dw_error.setitem (1,"line"    ,string(error.line)) 

------华软网友回答------
支持共享,结分

------华软网友回复------
8错8错,谢谢楼主了

------华软网友回复------
好东西
多谢楼主
------华软网友回复------
up
收藏
------华软网友回复------
8错8错,支持LZ      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。