(数据获取)获取系统错误信息函数

/* ======================================================= */ // 名称:gf_GetErrorInfo() // 中文名称:(数据获取)获取系统错误信息函数 // 作用:错误信息反馈 // 参数:ERROR aerr_Info // 返回值:STRING //返回空字符串表示无错误 // 原作者: // 备注:不需要再使用了系统标准的Error变量,返回空字符串表示没有错误 /* ======================================================= */ STRING ls_ErrMessage STRING ls_ErrText

IF IsNull(aerr_Info) THEN RETURN "Error对象为空" //NULL IF NOT IsValid(aerr_Info) THEN RETURN "Error对象没有实例化" //NON ISVALID

IF aerr_Info.Number=0 THEN RETURN ""

CHOOSE CASE aerr_Info.Number CASE 1   //By Zero   ls_ErrMessage="数学错误,出现被零除" CASE 2   //Null Object Reference   ls_ErrMessage="程序中引用了空对象" CASE 3   //Array Boundary Exceeded   ls_ErrMessage="数组出现越界访问" CASE 4   //Enumerated Value Is Out Of Range For Function   ls_ErrMessage="枚举值超出函数范围" CASE 5   //Negative Value Encountered In Function   ls_ErrMessage="函数中遇到否定值" CASE 6   //Invalid DataWindow Row/Column Specified   ls_ErrMessage="数据窗口中存在非法的行或列" CASE 7   //Unresolvable External When Linking Reference   ls_ErrMessage="链接调用时,出现不可确认的外部对象引用" CASE 8   //Reference Of Array With Null Subscript   ls_ErrMessage="引用带有空下标的数组" CASE 9   //DLL Function Not Found In Current Application   ls_ErrMessage="当前应用程序中没有找到动态链接库的函数" CASE 10   //Unsupported Argument Type In DLL Function   ls_ErrMessage="出现DLL库函数不支持的参数类型" CASE 11   //Object File Is Out Of Date And Must Be Converted To Current Version   ls_ErrMessage="对象文件已过期,必须转换为当前的PowerBuilder版本" CASE 12   //DataWindow Column Type Does Not Match GetItem Type   ls_ErrMessage="数据窗口列类型与GetItem函数的类型不匹配" CASE 13   //Unresolved Property Reference   ls_ErrMessage="未知的属性引用" CASE 14   //Error Opening DLL Library For External Function   ls_ErrMessage="为外部函数调用而打开动态链接库时发生错误" CASE 15   //Error Calling External Function Name   ls_ErrMessage="错误调用外部函数" CASE 16   //Maximum String Size Exceeded   ls_ErrMessage="字符串长度超越了最大限制" CASE 17   //DataWindow Referenced In DataWindow Object Does Not Exist   ls_ErrMessage="数据窗口控件中引用的数据窗口对象不存在" CASE 18   //Function Does Not Return Value   ls_ErrMessage="必须返回值的函数没有返回值" CASE 19   //Cannot Convert Name In Any Variable To Name   ls_ErrMessage="不能将任意变量中的数据类型转换为其他数据类型" CASE 20   //Database Command Has Not Been Successfully Prepared   ls_ErrMessage="没有成功地准备好数据库命令" CASE 21   //Bad Runtime Function Reference   ls_ErrMessage="引用了错误的运行时函数" CASE 22   //Unknown Object Type   ls_ErrMessage="未知的对象类型" CASE 23   //Cannot Assign Object Of Type Name To Variable Of Type Name   ls_ErrMessage="不能将对象赋给变量,两种类型不能赋值" CASE 24   //Function Call Does Not Match Its Definition   ls_ErrMessage="函数调用与其定义不匹配" CASE 25   //Double Or Real Expression Has Overflowed   ls_ErrMessage="DOUBLE或者REAL表达式溢出" CASE 26   //Field Name Assignment Not Supported   ls_ErrMessage="不支持对某种数据类型的字段的赋值" CASE 27   //Cannot Take A Negative To A Noninteger Power   ls_ErrMessage="不能计算一个负数的非整数次方" CASE 28   //VBX Error   ls_ErrMessage="某种数据类型的变量引起VBX错误" CASE 29   //Nonarray Expected In Any Variable   ls_ErrMessage="ANY数据类型变量必需是非整组类型" CASE 30   //External Object Does Not Support Data Type Name   ls_ErrMessage="外部对象不支持这种数据类型" CASE 31   //External Object Data Type Name Not Supported   ls_ErrMessage="这种数据类型不支持外部对象" CASE 32   //Name Not Found Calling External Object Function Name   ls_ErrMessage="调用外部对象函数时,未找到函数名" CASE 33   //Invalid Parameter Type Calling External Object Function Name   ls_ErrMessage="调用外部对象函数时,参数类型不合法" CASE 34   //Incorrect Number Of Parameters Calling External Object Function Name   ls_ErrMessage="调用外部对象函数时,使用不正确的参数个数" CASE 35   //Error Calling External Object Function Name   ls_ErrMessage="错误调用外部对象函数" CASE 36   //Name Not Found Accessing External Object Property Name   ls_ErrMessage="访问外部对象属性时,未找到名称" CASE 37   //Type Mismatch Accessing External Object Property Name   ls_ErrMessage="访问外部对象属性时,类型不匹配" CASE 38   //Incorrect Number Of Subscripts Accessing External Object Property Name   ls_ErrMessage="询问外部对象属性时,下标数目不正确" CASE 39   //Error Accessing External Object Property Name   ls_ErrMessage="错误访问外部对象属性" CASE 40   //Mismatched Any Data Types In Expression   ls_ErrMessage="与表达式中的数据类型不匹配" CASE 41   //Illegal Any Data Type In Expression   ls_ErrMessage="表达式中有不合法的数据类型" CASE 42   //Specified Argument Type Differs From Required Argument Type At Runtime In DLL Function Name   ls_ErrMessage="在DLL库函数中,运行时所指定的参数类型与所要求的参数类型不相同" CASE 43   //Parent Object Does Not Exist   ls_ErrMessage="父对象不存在" CASE 44   //Function Has Conflicting Argument Or Return Type In Ancestor   ls_ErrMessage="祖先的函数中发生具有冲突的参数及返回类型" CASE 45   //Internal Table Overflow; Maximum Number Of Objects Exceeded   ls_ErrMessage="内部表溢出;对象的最大数目已经超越允许值" CASE 46   //Null Object Reference Can Not Be Assigned Or Passed To A Variable Of This Type   ls_ErrMessage="空对象引用不能被赋值或传递给同类型的变量" CASE 47   //Array Expected In Any Variable   ls_ErrMessage="变量需要数组值" CASE 48   //Size Mismatch In Array To Object Conversion   ls_ErrMessage="数组的大小与对象的转换不匹配" CASE 49   //Type Mismatch In Array To Object Conversion   ls_ErrMessage="数组的类型与对象的转换不匹配" CASE 50   //Distributed Service Error   ls_ErrMessage="分布式服务错误" //PB7以上会触发一个EAServer异常 CASE 51   //Bad Argument List For Function/Event   ls_ErrMessage="函数或事件的参数不合法" CASE 52   //Distributed Communications Error   ls_ErrMessage="分布式通讯错误" //PB7以上会触发一个EAServer异常 CASE 53   //Requested Server Not Active   ls_ErrMessage="被请求的服务器没有激活" CASE 54   //Server Not Accepting Requests   ls_ErrMessage="服务器未接受请求" CASE 55   //Request Terminated Abnormally   ls_ErrMessage="请求意外中断" CASE 56   //Response To Request Incomplete   ls_ErrMessage="非完整的相应请求" CASE 57   //Not Connected   ls_ErrMessage="未进行连接或者连接不成功" CASE 58   //Object Instance Does Not Exist   ls_ErrMessage="对象实例不存在" CASE 59   //Invalid Column Range   ls_ErrMessage="不合法的列范围" CASE 60   //Invalid Row Range   ls_ErrMessage="不合法的行范围" CASE 61   //Invalid Conversion Of Number Dimensional Array To Object   ls_ErrMessage="将任意类型数组不合法的转换成对象" CASE 62   //Server Busy   ls_ErrMessage="服务器忙" CASE 63   //Function/Event With No Return Value Used In Expression   ls_ErrMessage="在表达式中函数或者事件中没有返回值" CASE 64   //Object Array Expected In Left Side Of Assignment   ls_ErrMessage="赋值语句左边需要对象数组" CASE 65   //Dynamic Function Not Found,Possible Causes Include:Pass By Value/Reference Mismatch   ls_ErrMessage="动态函数没有找到,可能是因为值传递或者引用传递不匹配" CASE 66   //Invalid Subscript For Array Index Operation   ls_ErrMessage="数组索引使用了非法的下标" CASE 67   //Null Object Reference Can Not Be Assigned Or Passed To An Autoinstantiate   ls_ErrMessage="空的对象引用不能赋值或者传递给一个自动实例化对象" CASE 68   //Null Object Reference Can Not Be Passed To External DLL Function Name   ls_ErrMessage="空的对象引用不能传递给外部动态链接库函数" CASE 69   //Function Name Can Not Be Called From A Secured Runtime Session   ls_ErrMessage="安全实时对话模式中不能调用该函数" CASE 70   //External DLL Function Name Can Not Be Called From A Secured Runtime Session   ls_ErrMessage="安全实时对话模式中不能调用外部动态链接库函数" CASE 71   //General Protection Fault Occurred   ls_ErrMessage="发生一般的保护性错误" CASE 72   //Name Failed With An Operating System Error Code Of Number   ls_ErrMessage="字段发生一个操作系统级错误" CASE 73   //Reference Parameters Can Not Be Passed To An Asynchronous Shared/Remote Object Method   ls_ErrMessage="引用型参数不能传递给一个异步的共享或者远程对象方法" CASE 74   //Reference Parameters Can Not Be Passed To A Shared Object Method   ls_ErrMessage="引用型参数不能传递给一个共享对象的方法" CASE 75   //The Server Has Forced The Client To Disconnect   ls_ErrMessage="服务器已经强制客户端断开连接" //PB7以上,EAServer会触发一个异常 CASE 76   //Passing Null As A Parameter To External Function Name   ls_ErrMessage="给外部函数传递了一个空值参数" CASE 77   //Object Passed To Shared/Remote Object Method Is Not A Nonvisual User Object   ls_ErrMessage="对象传递给共享或者远程对象的方法必须是一个不可视的用户对象" CASE 78   //Listen Can Only Be Done In Enterprise Version Of PowerBuilder   ls_ErrMessage="监听只能在企业版的PowerBuilder中使用" CASE 79   //The Argument To Name Must Be An Array   ls_ErrMessage="参数必须是一个数组" CASE 80   //The Server Has Timed Out The Client Connection   ls_ErrMessage="客户端尝试连接的时间已经超出服务器设置的限制时间" //PB7以上,EAServer会触发一个异常 CASE 81   //Function Argument File Creator Must Be A Four Character String   ls_ErrMessage="函数参数文件创建者必须是一个四个字符的字符串" //只会出现在Source Control模式下 CASE 82   //Function Argument File Type Must Be A Four Character String   ls_ErrMessage="函数参数文件类型必须是一个四个字符的字符串" //只会出现在Source Control模式下 CASE 83   //Attempt To Invoke A Function Or Event That Is Not Accessible   ls_ErrMessage="试图调用一个不可存取的函数或事件" CASE 84   //Wrong Number Of Arguments Passed To Function/Event Call   ls_ErrMessage="在函数或者事件中传递的参数个数错误" CASE 85   //Error In Reference Argument Passed In Function/Event Call   ls_ErrMessage="在函数或者事件中传递的引用型参数错误" CASE 86   //Ambiguous Function/Event Reference   ls_ErrMessage="引用不明确的函数或者事件" CASE 87   //The Connection To The Server Has Been Lost   ls_ErrMessage="与服务器的连接已经丢失" //PB7以上,EAServer会触发一个异常 CASE 88   //Cannot Ask For ClassDefinition Information On Open Painter:Name   ls_ErrMessage="不能在打开的画笔中查询类定义信息" CASE 89   //PowerBuilder 5.0 Style Proxy Objects Are Not Supported.Copy The New Style Proxy That Was Generated At Migration Time   ls_ErrMessage="5.0中的类型代理对象不支持,拷贝移植时产生的新的类型代理" //PB5和PB6的代码升级到PB7以上会发生该错误 CASE 90   //Cannot Assign Array Of Type Name To Variable Of Type Array Of Name   ls_ErrMessage="这两种数据类型的数组不能赋值" CASE 91   //Cannot Convert Any In Any Variable To String.Possible Cause Uninitialized Value   ls_ErrMessage="不能将任意类型变量转变成字符型变量" CASE 92   //Required Property Name Is Missing   ls_ErrMessage="必要的属性名丢失" CASE 93   //CORBA User Exception:Exceptionname   ls_ErrMessage="CORBA组件的调用者抛出了一个异常" //只会在EAServer中出现,一般要自己限制 CASE 94   //CORBA System Exception:Exceptionname   ls_ErrMessage="CORBA组件自身抛出了一个异常" //只会在EAServer中出现,一般要自己限制 CASE 95   //CORBA Objects May Not Be Created Locally   ls_ErrMessage="CORBA组件不能在本地创建实例" //只会在EAServer中出现,一般要自己限制 CASE 96   //Exception Thrown Has Not Been Handled   ls_ErrMessage="抛出的异常没有被处理" CASE 97   //Cannot Save Name Because Of A Circular Reference Problem   ls_ErrMessage="不能保存一个被嵌套引用的对象" //只会出现在程序中修改PBL或者PBD的情况下 CASE 98   //Obsolete Object Reference   ls_ErrMessage="使用了已被废弃的函数" //例如在EAServer上使用了GetStateStatus()函数,DataWindow的DBErrorCode()和DBErrorMessage()函数 CASE 99   //Unknown Exception Thrown From A PB Extension   ls_ErrMessage="抛出的异常属于一个PB扩展" //只会在使用了PBNI下才会出现 CASE ELSE   //Unkown Error   ls_ErrMessage="未知错误" END CHOOSE

ls_ErrText+="~r~n" ls_ErrText+="系统错误日志(Error Log)"+"~r~n~r~n" ls_ErrText+="出错时间(Error Time):"+String(Now(),"YYYY年MM月DD日 HH时MM分SS秒")+"~r~n" ls_ErrText+="出错编号(Error Number):"+String(aerr_Info.Number)+"~r~n" ls_ErrText+="出错对象(Error Object):"+aerr_Info.Object+"~r~n" ls_ErrText+="出错事件(Error Event):"+aerr_Info.ObjectEvent+"~r~n" ls_ErrText+="出错行数(Error Line):"+String(aerr_Info.Line)+"~r~n" ls_ErrText+="出错信息(Error Text):"+ls_ErrMessage+"~r~n"

IF aerr_Info.Object<>aerr_Info.WindowMenu THEN CHOOSE CASE Lower(Left(aerr_Info.WindowMenu,2))   CASE "m_"    ls_ErrText+="出错菜单(Error Menu):"+aerr_Info.WindowMenu+"~r~n"   CASE "w_","ws"    ls_ErrText+="出错窗口(Error Window):"+aerr_Info.WindowMenu+"~r~n" //  CASE "f_","sf" //   ls_ErrText+="出错函数(Error Function):"+aerr_Info.WindowMenu+"~r~n"   CASE ELSE    ls_ErrText+="出错控件(Error Control):"+aerr_Info.WindowMenu+"~r~n" END CHOOSE END IF

ls_ErrText+="详细原因(Error Message):"+aerr_Info.Text

RETURN ls_ErrText

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章