Apex 的异常处理
Apex 中的異常處理
在 Apex 中,和其他語言類似,對于異常處理通常使用 try、catch、finally、throw 等關(guān)鍵字。
對于每一個 try 代碼段,必須要有至少一個 catch 或 finally 代碼段,而 finally 代碼段最多只能有一個。
finally 代碼段是必然會執(zhí)行的代碼段,無論異常有沒有發(fā)生。
異常處理的結(jié)果
當(dāng)發(fā)生異常后,代碼執(zhí)行會終止,而在此異常之前所有的數(shù)據(jù)庫 DML 操作都會回滾,無論是否已經(jīng)在此之前設(shè)定了“保存點(SavePoint)”。
與此同時,相關(guān)的錯誤信息會寫入日志,用戶可以在“設(shè)置”界面下的 “Debug Logs” 選項中進行查看。錯誤信息也會顯示在用戶界面中。
異常類型
系統(tǒng)定義的異常類型有:
- DmlException:關(guān)于數(shù)據(jù)庫操作的異常
- ListException:關(guān)于列表操作的異常
- NullPointerException:關(guān)于空指針的異常
- QueryException:關(guān)于查詢語句的異常
- SObjectException:關(guān)于SObject對象的異常
它們共有的方法包括:
- getCause():給出異常原因
- getLineNumber():給出發(fā)生異常的行數(shù)
- getMessage():給出異常的詳細(xì)信息
- getStackTraceString():給出異常發(fā)生的棧信息
- getTypeName():給出異常的類型,比如 DmlException、NullPointerException 等
對于每個異常類型,還有自己的方法,比如 DmlException 就擁有 getDmlFieldNames()、getDmlMessage() 等方法。
標(biāo)準(zhǔn)格式
try {// 執(zhí)行操作,有可能發(fā)生異常 } catch(DmlException e) {// 捕捉 DML 相關(guān)的異常 } catch(SObjectException e) {// 捕捉 SObject 相關(guān)的異常 } catch(Exception e) {// 發(fā)生異常之后,在此進行后續(xù)處理 } finally {// 其他的操作,必然會執(zhí)行的代碼段 }如果要捕捉不同的異常類型,要將“一般異常類型”(Exception)放在最后。
自定義異常類型
對于系統(tǒng)自定義的異常類型,只能使用 catch 來捕捉,而不能使用 throw 語句來拋出。開發(fā)者也可以定義自己的異常類型。
自定義異常類型也是一個類,必須繼承 Exception 類或其任何子類。
自定義異常類型的名字必須以 Exception 結(jié)尾。
標(biāo)準(zhǔn)格式:
public class BaseException extends Exception {}public class ExampleException extends BaseException {}...// 拋出異常類 throw new BaseException();// 拋出異常類并加上錯誤信息 new ExampleException('An error occurred.');// 拋出異常類并嵌套異常類變量 try { throw new BaseException('First exception'); } catch (BaseException e) { throw new ExampleException('Thrown with inner exception', e); }轉(zhuǎn)載于:https://www.cnblogs.com/chengcheng0148/p/apex_exception.html
總結(jié)
以上是生活随笔為你收集整理的Apex 的异常处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ES6 Symbol的应用场景
- 下一篇: webpack 引入模块import 后