我試圖讓一個RPG程序能夠告訴更多具體的細節,當它裏面的程序調用出錯時。我想監視的異常與壞的程序邏輯無關,比如說除以零。我想檢查的是如果程序調用由於權限問題或程序未找到而失敗。 73-74的指標只能說明存在例外情況,但不是其背後的原因。是否有任何可能的方法來檢測RPG中的這一點,就像CL程序中的MONMSG聲明一樣?是否有可能捕獲RPG程序中的程序調用引發的錯誤消息?
回答
有兩類錯誤:程序和文件。程序錯誤是被零除,CALL失敗等等。完整列表爲Program Status Codes。這些錯誤代碼非常粗糙 - 如果您調用PGMX並且存在授權問題,您將得到00211.如果程序不在庫列表中,則會得到00211.如果程序異常結束(例如由於轉義消息)你得到一個00211.如果你需要知道爲什麼 CALL失敗,你將需要詢問作業日誌/程序消息隊列。
對於文件錯誤,file information data structure將記錄錯誤代碼。文件錯誤是指參考約束違規或永久I/O錯誤。再次,這些file status codes不是很精細,如果您需要知道您的權限失敗,則需要從作業日誌中找出。
關於文件錯誤的一個注意事項。當你編寫你自己的錯誤處理程序(file exception error subroutine)時,你需要知道這個處理程序在週期打開文件之後纔會激活。這意味着如果讓循環打開文件,則不會捕獲「文件不在庫列表中」或「未授權文件」等錯誤。爲了捕獲在開放時間發生的錯誤,您需要通過OPEN操作碼自行打開文件。不要忘記關閉它們。
我只想找到頂級原因。想分爲零或水平誤差可以看作一種類型。權力問題是另一個問題。未找到程序是第三種類型。 –
您可以將您的應用程序需要的任何方式錯誤地分組。我指出的是_detecting_他們將採取兩個獨立的邏輯過程。一個用於程序錯誤,另一個用於文件錯誤。在舊式代碼中,這將涉及爲程序錯誤創建一個* PSSR,併爲文件錯誤創建一個INFSR。如果您對錯誤處理足夠滿意,則可以使它們成爲相同的SUBR。較新的代碼將使用(e)操作碼擴展器和%狀態,最新的代碼將使用MONITOR塊。 –
是否可以在調用者程序中使用PSDS位置40〜46來說明失敗程序調用的原因? –
- 1. 是否有可能從Java程序中捕獲Windows彈出消息框?
- 2. 捕獲程序調試事件消息
- 3. 是否有可能在Silverlight應用程序中捕獲F5
- 4. 引導程序中未捕獲的引用錯誤datetimepicker
- 5. 「ODBC調用失敗」錯誤消息是否可以被捕獲並顯示爲友好的錯誤消息?
- 6. 獲取錯誤消息VB.NET程序
- 7. phantomJs錯誤處理程序是否會捕獲錯誤?
- 8. 是否有可能只在Perl中調用子程序調用?
- 9. 是否有可能捕獲Tornado中處理程序的可選參數
- 10. 應用程序或應用程序是否應該捕獲錯誤異常?
- 11. 是否有可能獲得C#應用程序的進程開始信息?
- 12. 通用應用程序 - 捕獲在WebView中發生的錯誤
- 13. 是否可以將消息發送到Android應用程序?
- 14. AIR - 調試應用程序中的Supress錯誤消息?
- 15. 是否可以在消息應用程序中將相同的消息放入應用程序中?
- 16. 防止Visual Basic 6中的調用程序錯誤捕獲
- 17. 是否有可能捕獲由Python應用程序生成的任何回溯?
- 18. 是否有可能捕獲另一個perl模塊內發生的消息?
- 19. 是否有可能在linux中捕獲應用程序屏幕緩衝區?
- 20. Gnome pannel應用程序錯誤消息
- 21. 可能從$ window.onerror中捕獲一個Angular應用程序中的JavaScript錯誤
- 22. 在錯誤Logcat中獲取錯誤消息,應用程序沒有響應
- 23. 是否有可能發展與PhoneGap的純HTML5應用程序?
- 24. FCM消息是否適合未發佈的應用程序?
- 25. 是否有可能在java Swing程序中調用NSIS腳本
- 26. 設計錯誤消息沒有顯示引導程序模板
- 27. Android:是否有可能獲得其他應用程序的通知信息?
- 28. 捕獲錯誤消息
- 29. 捕獲FTP錯誤消息
- 30. 」有一個箴言發送命令到程序「錯誤消息
錯誤處理操作是否以固定格式工作?我的假設是,這個被調用程序將始終在正常情況下工作,除了沒有權限訪問它的情況或在庫列表中找不到它。像小數點錯誤這樣的事情不在這裏。 –
@God_of_Thunder有錯誤處理的固定格式和自由格式版本。 – jamesallman
如果我期望未找到未經授權的程序或程序之類的東西,我應該使用哪種錯誤代碼? 211? –