首页 > 编程语言 >PowerBuilder 中全局处理程序错误

PowerBuilder 中全局处理程序错误

时间:2023-10-29 09:00:48浏览次数:34  
标签:Case NAME 错误 PowerBuilder 处理程序 ls Msg 全局 ErrMsg

PowerBuilder 中全局处理程序错误 在systemerror事件中写入如下代码即可,程序发生错误会弹框提示并记录到错误日志文件中,不写的话只是弹框提示并且是英文  

int li_ErrNo  //错误编号
string ls_ErrMsg //错误编号对应的中文错误信息
string ls_Msg   //弹出错误提示框的内容也是最后存到日志文件中的内容
string ls_file //系统错误日志文件名(不用全路径则在当前应用程序目录下生成)
int li_file_no //系统错误日志文件句柄

li_ErrNo = Error.Number
if li_ErrNo = 0 then return


choose case li_ErrNo
    case 1
        ls_ErrMsg = "除数不能为零!!!"
        case 2
 ls_ErrMsg = "引用空对象"
case 3
 ls_ErrMsg = "数组越界"
case 4
 ls_ErrMsg = "枚举值超出函数范围"
case 5
ls_ErrMsg ="函数中逶到负值"
Case 6
ls_ErrMsg ="指定的数据窗口行l列无效"
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

 

ls_Msg = "~r~n -------------------------------------- ~r~n"
ls_Msg += "出错时间:"+string(today(),'yyyy-mm-dd')+" " + string(now())+ '~r~n' ; 

ls_Msg += "窗口/菜单:"+ Error.WindowMenu + '~r~n'
ls_Msg += "出错对象:"+Error.Object + '~r~n'
ls_Msg += "出错事件:"+Error.ObjectEvent + '~r~n'
ls_Msg += "出错行:"+String(Error.Line) + '~r~n'
ls_Msg += "错误号:"+String(li_ErrNo) + '~r~n'
ls_Msg += "错误信息(中文):"+ ls_ErrMsg  + '~r~n'
ls_Msg += "错误信息(原文):"+  Error.Text  + '~r~n'

MessageBox('系统运行错误',ls_Msg)

//记录错误到文本文件中
ls_file = "syserror.log"
li_file_no = FileOpen(ls_file,LineMode!,Write!,Shared!,Append!)
if li_file_no = 0 then
    MessageBox("出错","不能打开系统错误日志文件!",Exclamation!)
else
    if FileWrite(li_file_no,ls_Msg)<0 then
        MessageBox("出错","写系统错误日志文件出错!",Exclamation!)
    end if
end if

 

标签:Case,NAME,错误,PowerBuilder,处理程序,ls,Msg,全局,ErrMsg
From: https://www.cnblogs.com/niunan/p/17795431.html

相关文章

  • Python 作用域:局部作用域、全局作用域和使用 global 关键字
    变量只在创建它的区域内可用。这被称为作用域。局部作用域在函数内部创建的变量属于该函数的局部作用域,并且只能在该函数内部使用。示例:在函数内部创建的变量在该函数内部可用:defmyfunc():x=300print(x)myfunc()函数内部的函数如上面的示例所解释的那样,变量x在......
  • Python 作用域:局部作用域、全局作用域和使用 global 关键字
    变量只在创建它的区域内可用。这被称为作用域。局部作用域在函数内部创建的变量属于该函数的局部作用域,并且只能在该函数内部使用。示例:在函数内部创建的变量在该函数内部可用:defmyfunc():x=300print(x)myfunc()函数内部的函数如上面的示例所解释的那样,变量x......
  • 手撕Vuex-添加全局$store
    经过上一篇的介绍,了解到了Vuex的实现本质就是一个插件,所以要做的事情就是实现这个插件的代码编写即可。本篇文章主要是实现一个全局的$store,这个$store是挂载在Vue的原型上的,所以在任何一个组件当中都可以通过this.$store访问到。我们先来看看Vue官方的,我们分别在Ap......
  • 【Java 进阶篇】JavaScript 中的全局对象和变量
    JavaScript是一门非常强大的编程语言,它提供了许多全局对象和变量,以便于在整个应用程序中共享数据和功能。本文将详细介绍JavaScript中的全局对象和变量,包括全局对象、全局变量、全局函数以及它们的用途和示例。全局对象JavaScript中有一些全局对象,它们在整个应用程序中都可用。......
  • elment 的Message或$message 全局控制X号是否展示
     main.jsVue.prototype.$message=function(option){option.offset=70option.showClose=truereturnMessage(option)}Vue.prototype.$message.success=function(msg){returnMessage.success({message:msg,offset:7......
  • 派克斯电脑全局改IP如何辅助捉妖游戏
    捉妖游戏是一款非常受欢迎的手机游戏,玩家需要通过探索地图来捉到各种可爱的妖精。为了让游戏更具趣味性,玩家可以通过地图制作来设计自己的捉妖之旅。在这篇教程中,我们将向您展示如何使用电脑全局软件工具——派克斯,来制作捉妖游戏的地图。捉妖游戏的地图制作可以让玩家更好地探索游......
  • 关于idea全局配置问题
    问题:每次当我们新建工程时,发现之前设置的配置全变成了默认设置。原因:我们需要进行全局设置,而不是在每次的当前项目中重复设置。参考于:https://www.cnblogs.com/youzhibing/p/13413572.htmlhttps://www.cnblogs.com/listenerxx/p/14230020.html......
  • RBAC中使用行为过滤器和全局异常过滤器
    在学习行为过滤器和异常过滤器是先要认识什么事行为过滤器和异常过滤器行为过滤器(ActionFilters):是ASP.NETMVC框架中的一个功能,用于在控制器方法执行前后插入预定义的逻辑。通过行为过滤器,你可以在不修改原始方法代码的情况下,实现一些常见的横切关注点,例如日志记录、身份......
  • PowerBuilder读取硬盘图片显示出来并保存到数据库中
    PowerBuilder读取硬盘图片显示出来并保存到数据库中 数据库是SQLSERVER 表:blobtab 列: id,int,主键自增 blobdata,image,二进制内容可空 注:PB中存储二进制数据和读取二进制数据只能用updateblob语句和selectblob语句  显示图片到控件里的代码://显......
  • PowerBuilder最简应用需要的dll
    PowerBuilder最简应用需要的dll atl71.dlllibjcc.dlllibjtml.dlllibjutils.dllmsvcp71.dllmsvcr71.dllnlwnsck.dllpbshr125.dllpbvm125.dll ......