溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Salesforce中Apex異常該怎么處理

發(fā)布時(shí)間:2022-01-12 16:01:39 來源:億速云 閱讀:233 作者:柒染 欄目:云計(jì)算

今天給大家介紹一下Salesforce中Apex異常該怎么處理。文章的內(nèi)容小編覺得不錯(cuò),現(xiàn)在給大家分享一下,覺得有需要的朋友可以了解一下,希望對(duì)大家有所幫助,下面跟著小編的思路一起來閱讀吧。

一 . Apex語言

        Apex是由Salesforce.com開發(fā)的專有語言。 根據(jù)官方定義,Apex是一種強(qiáng)類型,面向?qū)ο蟮木幊陶Z言,允許開發(fā)人員在Force.com平臺(tái)服務(wù)器上執(zhí)行流量和事務(wù)控制語句,同時(shí)調(diào)用Force.com API。 它具有類似Java的語法,并且像數(shù)據(jù)庫存儲(chǔ)過程。 它使開發(fā)人員能夠向大多數(shù)系統(tǒng)事件添加業(yè)務(wù)邏輯,包括按鈕點(diǎn)擊,相關(guān)記錄更新和Visualforce頁面??梢酝ㄟ^Web服務(wù)請(qǐng)求和對(duì)象上的觸發(fā)器啟動(dòng)代理代碼。 Apex包含在Performance Edition,Unlimited Edition,Enterprise Edition和Developer Edition中。

   1.語言特點(diǎn) 

      1)集成

       Apex內(nèi)置支持DML操作,如INSERT,UPDATE,DELETE以及DML異常處理。它支持內(nèi)聯(lián)SOQL和SOSL查詢處理,返回一組sObject記錄。

     2)Java語法易于使用

      Apex很容易使用,因?yàn)樗褂孟馢ava這樣的語法。例如,變量聲明,循環(huán)語法和條件語句。

     3)數(shù)據(jù)高度集成

      Apex數(shù)據(jù)集中和設(shè)計(jì),以一起執(zhí)行多個(gè)查詢和DML語句。它發(fā)出的多個(gè)數(shù)據(jù)庫事務(wù)語句 。

     4)強(qiáng)類型

     Apex是強(qiáng)類型語言。它使用直接引用構(gòu)架對(duì)像,比如sObject,并且任何無效引用如果被刪除或者如果是錯(cuò)誤的數(shù)據(jù)類型,就會(huì)快速失敗。

     5)多租戶環(huán)境

     Apex在多租戶環(huán)境中運(yùn)行。因此,Apex運(yùn)行時(shí)引擎設(shè)計(jì)為密切防范失控代碼,防止其獨(dú)占共享資源。任何違反限制的代碼都會(huì)失敗,并顯示易于理解的錯(cuò)誤消息 。

     6)自動(dòng)升級(jí)

   Apex作為Salesforce版本的一部分進(jìn)行升級(jí),不必手動(dòng)進(jìn)行升級(jí)。

    7)容易測(cè)試

  Apex為單元測(cè)試創(chuàng)建和執(zhí)行提供內(nèi)置支持,包括指示覆蓋了多少代碼的測(cè)試結(jié)果,以及代碼的哪些部分可以更高效。

二.異常處理 

    Apex 因其具有類似Java的語法,所以對(duì)于異常處理我們通常使用 try、catch、finally、throw 等關(guān)鍵字。  對(duì)于每一個(gè) try 代碼段,必須要有至少一個(gè) catch 或 finally 代碼段,而 finally 代碼段最多只能有一個(gè), finally 代碼段是必然會(huì)執(zhí)行的代碼段,無論異常有沒有發(fā)生, 這些跟Java里面的是一樣的。

標(biāo)準(zhǔn)格式 :

try {
    //同時(shí)也可以設(shè)置一個(gè)事務(wù)的保存點(diǎn),當(dāng)出現(xiàn)異常后可以回滾到保存點(diǎn)
    Savepoint sp = Database.setSavepoint();

   // 執(zhí)行操作,有可能發(fā)生異常,將其放到try中包裹
   
}catch(異常類型 e){
   // 捕捉 相關(guān)類型的異常

   //回滾 到某個(gè)保存點(diǎn)
   Database.rollback(sp);

}catch(Exception e){
   //  e.getMessage()  獲取異常信息
}finally{
   //無論如何都會(huì)(需要)執(zhí)行的其他操作

}

三 .常見的異常類型 

系統(tǒng)定義的異常類型有:

  • DmlException:關(guān)于數(shù)據(jù)庫操作的異常

  • ListException:關(guān)于列表操作的異常

  • NullPointerException:關(guān)于空指針的異常

  • QueryException:關(guān)于查詢語句的異常

  • SObjectException:關(guān)于SObject對(duì)象的異常

它們共有的方法包括:

  • getCause():給出異常原因

  • getLineNumber():給出發(fā)生異常的行數(shù)

  • getMessage():給出異常的詳細(xì)信息

  • getStackTraceString():給出異常發(fā)生的棧信息

  • getTypeName():給出異常的類型,比如 DmlException、NullPointerException 等

對(duì)于每個(gè)異常類型,還有自己的方法,比如 DmlException 就擁有 getDmlFieldNames()、getDmlMessage() 等方法。

如果要捕捉不同的異常類型,要將“一般異常類型”(Exception 最大的異常類型)放在最后。

以上就是Salesforce中Apex異常該怎么處理的全部?jī)?nèi)容了,更多與Salesforce中Apex異常該怎么處理相關(guān)的內(nèi)容可以搜索億速云之前的文章或者瀏覽下面的文章進(jìn)行學(xué)習(xí)哈!相信小編會(huì)給大家增添更多知識(shí),希望大家能夠支持一下億速云!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI