纯C中的异常处理

时间:2010-10-19 15:01:22

标签: c exception-handling

  

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

嗨,我知道异常处理在C ++中可用,但在C中不可用。但是我也读到异常处理是从OS端提供的,因此没有任何函数可以从OS调用与try catch和throw相同的行为?感谢。

4 个答案:

答案 0 :(得分:7)

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

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

我过去曾经看过C函数对setjmplongjmp是C中的异常处理。我认为它更接近于弹射模式,但是值得研究

答案 1 :(得分:2)

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

答案 2 :(得分:1)

不是与平台无关的方式。这只适用于硬件/操作系统级异常,而不是软件异常。

答案 3 :(得分:1)

我认为没有真正的,纯粹的便携式C解决方案。 对于Microsoft编译器,您可以使用__try __except,请参阅http://msdn.microsoft.com/en-us/library/zazxh1a9(VS.80).aspx