(數據獲取)獲取系統錯誤信息函數

/* ======================================================= */ // 名稱: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

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