Exception Handling — Practical Examples

DEX455 - Apex 调试与异常处理完全指南

📄 第 435 页 🎬 视频课程

课程章节介绍

同学们,咱们今天聊一聊 Apex 里异常处理中一个特别关键的机制——,try-catch-finally,。这部分可能有些朋友觉得枯燥,但听我讲完,你会发现它就像生活中的保险绳,非常有用。 先看第一个小例子:假设你写了一段代码,想在数据库里插入一条客户信息。把插入语句放在 try 块里,后面还跟着一句“插入成功了,发个通知”的代码。如果插入时因为验证规则没通过而失败了,程序就会立刻跳进 catch 块去抓这个异常,注意了——try 块里那句“发通知”的代码,直接就被跳过了,,不会执行。但 catch 块后面的代码,比如打印一条“处理完成”的日志,还是会正常跑下去的。这就是 try-catch 最基本的保护:,出错时跳过剩余风险代码,但整个流程不崩盘,。 接下来更精彩的来了:,finally 模块,。我们再看一个写法——你在代码里用了一个 DataStreamWriter 来写文件,这可是个必须手动关闭的资源。想象一下,在 try 块里操作文件时,不小心访问了一个空字符串,于是抛出了空指针异常。程序会先进入 catch 记录错误,但无论异常是什么、甚至没异常,这个写文件的流如果不关掉,就会一直占用资源。这时 finally 块就派上用场了,你把关闭流的动作放进去,,它一定会执行,雷打不动,。这样一来,哪怕程序前面已经因为有异常而跳进了 catch,finally 还是会默默地把流关闭,保证资源不泄露。 这里有一个特别容易踩的坑大家要记住:,变量得声明在 try 块的外面,。比如 DataStreamWriter 这种流对象,你必须在 try 之前就定义好,不能写在 try 内部。因为如果定义在 try 里面,那它的作用域就被限制住了,catch 和 finally 都“看不见”它,自然也就无法在出错时去关闭它了。所以正确的做法是,先把变量声明在外层,再在 try 里给它赋值使用。 总结一下,,finally 块就像一位忠实的管家,不管你家是风平浪静(无异常),还是遭遇小偷(有异常),它都会在最后把门锁好(执行清理代码),。我们在写 Apex 时,只要涉及文件、网络连接、临时数据这类需要“用完就关”的资源,就用 try-catch-finally 这套组合拳,保你代码健壮又优雅。 好了,这个知识点我们就讲到这儿,下一个小节再见!

关键词

Apex Salesforce Developer Guide