代码之家  ›  专栏  ›  技术社区  ›  B.Gen.Jack.O.Neill

纯C中的异常处理[重复]

  •  7
  • B.Gen.Jack.O.Neill  · 技术社区  · 14 年前

    可能重复:
    C : How do you simulate an 'exception' ?

    嗨,我知道异常处理在C++中是可用的,但不是在C.,但是我也看到了异常处理是从OS端提供的,所以没有任何功能来调用来自OS的相同的行为作为尝试捕获和投掷吗?谢谢。

    4 回复  |  直到 14 年前
        1
  •  7
  •   JaredPar    14 年前

    C语言本身不支持异常处理。但是,C的异常处理方法确实存在于特定于平台+编译器的基础上。

    例如,在Windows中,C程序可以使用SEH异常处理。

    我以前看到过C函数对 setjmp longjmp C中的异常处理。我认为它更接近于喷射模式,但值得研究

        2
  •  2
  •   Joshua    14 年前

    C在标准库中提供异常:setjmp()/longjmp()。

        3
  •  1
  •   Oliver Charlesworth    14 年前

    不是以平台独立的方式。这只适用于硬件/OS级别的异常,而不是软件异常。

        4
  •  1
  •   Emile    14 年前

    我不认为有一个真正的,纯粹的,可移植的C解决方案。 对于Microsoft编译器,您可以使用“尝试”,除非,请参见 http://msdn.microsoft.com/en-us/library/zazxh1a9(VS.80).aspx