美文网首页
Apex 的异常处理

Apex 的异常处理

作者: 程程哥 | 来源:发表于2017-11-05 01:29 被阅读0次

Apex 中的异常处理

在 Apex 中,和其他语言类似,对于异常处理通常使用 try、catch、finally、throw 等关键字。

对于每一个 try 代码段,必须要有至少一个 catch 或 finally 代码段,而 finally 代码段最多只能有一个。

finally 代码段是必然会执行的代码段,无论异常有没有发生。

异常处理的结果

当发生异常后,代码执行会终止,而在此异常之前所有的数据库 DML 操作都会回滚,无论是否已经在此之前设定了“保存点(SavePoint)”。

与此同时,相关的错误信息会写入日志,用户可以在“设置”界面下的 “Debug Logs” 选项中进行查看。错误信息也会显示在用户界面中。

异常类型

系统定义的异常类型有:

  • DmlException:关于数据库操作的异常
  • ListException:关于列表操作的异常
  • NullPointerException:关于空指针的异常
  • QueryException:关于查询语句的异常
  • SObjectException:关于SObject对象的异常

它们共有的方法包括:

  • getCause():给出异常原因
  • getLineNumber():给出发生异常的行数
  • getMessage():给出异常的详细信息
  • getStackTraceString():给出异常发生的栈信息
  • getTypeName():给出异常的类型,比如 DmlException、NullPointerException 等

对于每个异常类型,还有自己的方法,比如 DmlException 就拥有 getDmlFieldNames()、getDmlMessage() 等方法。

标准格式

try {
    // 执行操作,有可能发生异常
} catch(DmlException e) {
    // 捕捉 DML 相关的异常
} catch(SObjectException e) {
    // 捕捉 SObject 相关的异常
} catch(Exception e) {
    // 发生异常之后,在此进行后续处理
} finally {
    // 其他的操作,必然会执行的代码段
}

如果要捕捉不同的异常类型,要将“一般异常类型”(Exception)放在最后。

自定义异常类型

对于系统自定义的异常类型,只能使用 catch 来捕捉,而不能使用 throw 语句来抛出。开发者也可以定义自己的异常类型。

自定义异常类型也是一个类,必须继承 Exception 类或其任何子类。

自定义异常类型的名字必须以 Exception 结尾。

标准格式:

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);
} 

相关文章

  • Apex 的异常处理

    Apex 中的异常处理 在 Apex 中,和其他语言类似,对于异常处理通常使用 try、catch、finally...

  • Apex计划作业框架的实现

    在本文中,我们实现一个简单的“计划作业框架”,用于实现数据的定时自动处理。 Apex相关接口 Apex中提供了一组...

  • 2020-06-11 Apex Class 异常处理代码块

  • Apex 的 Trigger 类简介

    Apex Triggers Apex 触发器(Apex Triggers)是一种特殊的 Apex 类。它的主要作用...

  • 同步或异步异常处理

    同步或异步异常处理 同步读取异常处理 异步读取文件异常处理

  • Java 异常

    异常处理机制 异常处理模型:终止模型:当异常发生时,就进入异常处理程序,处理结束并不返回异常发生位置继续执行;恢复...

  • 第十二章:异常处理

    异常处理语法格式: try: ...处理语句 except 异常类型: ...异常处理语句 pytho...

  • 异常处理设计文档

    一、异常处理流程说明 在ESB处理过程中,若发生异常,将进入异常流程的处理。一个异常处理流程大致如下: ESB处理...

  • Java异常处理机制

    什么是异常处理机制: 异常处理机制: 让程序发生异常时,按照代码预先设定的异常处理逻辑,针对性地处理异常,让程序尽...

  • 2020-06-27【异常】

    异常体系 JVM的默认处理方案 异常处理 自定义异常

网友评论

      本文标题:Apex 的异常处理

      本文链接:https://www.haomeiwen.com/subject/jbfcmxtx.html