2017-10-12 58 views

回答

0

不,對不起。你無法捕捉到它們,因爲你無法捕捉由System.assert()引起的異常。

https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_gov_limits.htm

由於頂點在多租戶環境中運行時,運行時的Apex發動機 嚴格執行限制,以確保失控的Apex代碼或 過程不獨佔共享資源。如果一些Apex代碼超過 的限制,則關聯的調節器發出運行時異常, 無法處理

+0

謝謝!! ....其實我想在用戶的Apex cpu時間限制異常上顯示錯誤信息。那麼還有其他辦法可以做到這一點嗎? – Anonymous

+0

不在發生的情況下,SF會在白色背景緻命錯誤上顯示自己丑陋的黑色文字。但是如果你有另一個上下文(也許它不是一個VF頁面,而是一個批處理作業,或者是入站郵件處理程序) - 你可以嘗試查詢AsyncApexJob表。即使沒有啓用調試日誌記錄,批處理和@未來也會以失敗告終。 InboundEmailHandler例外可以轉發到專用郵箱。 – eyescream

0

您無法捕捉到頂點CPU時間限制例外,但在代碼中您始終可以檢查限制,請參閱文檔here。在你的情況下,你可以檢查Limits.getCpuTime(),你可以在每次迭代之後調用它,或者每當它看起來合適時,如果你發現時間接近極限,你可以簡單地停止執行並通過你自己的自定義錯誤信息ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR,'Error: Your Custom Error Message'))