Java Exception 历史回顾
Java Exception 历史回顾 前言 本文从 Exception 的起源讲起,试图帮开发者建立对 Java、Kotlin 编程语言异常处理机制的感性认知。文章内容出自个人理解,如有纰漏,还请各位看官斧正。 1990 年前后, Sun 公司的工程师团队在项目开发中经历了 C++ 的诸多痛点,对此 Sun 公司内部成立了 Stealth 计划小组(后改名为 Green 计划小组)来解决这些痛点问题。小组起初进行了多种尝试:有切换编程语言到 NexT 的;也有尝试改进和扩展 C++ 的,但都宣告失败。最终小组内的 James Gosling ( Java 之父) 决定创造一个新的编程语言来解决问题。他以办公室外的橡树为名,把这一编程语言称为 Oak,随后因商标原因将其更名为 Java。 Java 语言的开发过程中广泛借鉴了 C/C++ 的特性,C++ 中的异常处理机制也被沿用了下来。 C++ 语言中的异常 异常:表示程序中意料之外,情理之中的一类错误。 C++ 中的异常处理是一种条件转移机制,当程序在运行过程中遇到 throw 关键字时,会中止当前的程序代码块并跳转到最近的 catch 代码块执行后续操作。这一行为对 C 语言中的 goto 机制,以及汇编语言中的转移指令(如:jmp)。 C++ with Exception C/C++ with Goto 在 C 语言体系中,goto 因过于灵活和难以调试,常被诟病为邪恶的。常见的规避手段是使用 int 类型的返回值表示函数的执行状态,通常用 0 表示执行成功,非0表示执行失败。但上述做法违背了函数返回值的用途,导致大量库函数不得不增加额外的形参作为真实的返回值,如下所示:...