title: 如何用C语言实现异常/状况处理机制？
desc: 异常机制即Java或者类似风格的exception handling，使用trycatch（或类似的关键字）进行捕捉，然后进行处理或者继续向上抛出异常状况机制主要指的是Common Lisp风格的做法，即除了抛出异常捕捉异常以外，还有重启（restart）机制，可以向下移动到某一个指定的代码处理点，例如从错误处继续运行等做法。<br><br>C本身不支持这样的功能，只有和Java风格接近的setjmplongjmp而已。如果要用C语言实现这两种功能，那么大致的思路是怎样的呢？或者说有什么适合的参考文献吗？
topic: C（编程语言）
content: 题主你厉害，你提了一个无比经典而又深藏功名的问题 -- 'C语言编译器如何实现trycatch'。我记得VC从版本4.0开始就提供了 try catch finally 这三个VC 注意不是C扩展关键词。那时候我就被这个问题深深地困扰住了， 直到1997年， -- 那时候MS有一本电子杂志叫 MSJ MS Journal ，专门刊登一些奇奇怪怪的MS系技术问题 -- MSJ上出了一篇 奇文 A Crash Course on theDepths of Win32 Structured Exception Handling， MS
answerer_tags: https://github.com/grizzlybears