异常是什么

异常是一种用来分离程序运行中那1%会走进的岔路的分支控制手段.

语言是如何实现它的

曾经, 大概在我大三末大四初的时候, 有幸读了本 C 接口与实现, 书里用 setjump & longjmp 和宏的方式向我展现了如何在 C 语言中实现它.

Exception is a beautiful goto.

当然, sjlj 只是实现异常的一种, 还有基于 table 的方式等等, 更加高效, 在不进入异常时不产生副作用.