SPEL + 中的錯誤處理
??????? 如果在SPEL+程序中發生錯誤,可以將執行轉到錯誤處理例程中進行錯誤處理。該例程必須在函數定義內。下一頁的表格顯示了用于錯誤處理的程序指令。
??????????????? 項目? ???? ?? ????????? 目的????????????? ? OnErr???????????????? 使用OnErr語句定義錯誤處理例程的位置。
??????????????? Err? ??????????????????? 使用Err檢索當前錯誤狀態的數量。在錯誤處理例程中使用這個可以確定已經發生了哪些錯誤。
??????????????? Error?????????????? ? ? 生成一個可被錯誤處理程序捕獲的用戶定義的錯誤。
??????????????? Era? ?????????????????? 使用Era檢索發生錯誤的軸號。這通常用于錯誤處理例程中。
??????????????? Erl??????????????? ? ? ?? 使用Erl檢索發生錯誤的行號。這通常用于錯誤處理例程中。
??????????????? Ert? ???????????????????? 使用Ert檢索發生錯誤的任務號。這通常用于錯誤處理例程中。
??????????????? ErrMsg$??????????? 使用ErrMsg$ 檢索與指定的錯誤號相關的錯誤消息。
??????????????? Errb? ????????????????? 使用Errb檢索發生錯誤的機器人編號。這通常用于錯誤處理例程中。
用戶錯誤
???????? 您可以使用工具菜單中提供的用戶錯誤編輯器來定義您自己的錯誤信息。有關詳情,請參閱5.11.7用戶錯誤編輯器命令(工具菜單)。
示例
??????? 以下例子顯示了簡單的錯誤處理例程。發生錯誤時,程序執行轉到ErrHandler標簽,啟動錯誤處理程序。顯示錯誤號并詢問操作員是否繼續。如果操作員輸入“N”,則該程序執行Quit All語句來結束該程序。
Function MainString cont$Integer iOnErr Goto ErrhandlerFor i = 1 To 10Jump P(i)Next iExit Function' *** Error handler ***Errhandler:enum = ErrPrint "Error #", enum, " occurred"Print "Continue (Y or N)?"Line Input cont$Select cont$Case "y", "Y"EResume NextDefaultQuit AllSend
Fend