嗨,我知道异常处理在C ++中可用,但在C中不可用。但是我也读到异常处理是从OS端提供的,因此没有任何函数可以从OS调用与try catch和throw相同的行为?感谢。
答案 0 :(得分:7)
C语言本身不支持异常处理。但是,C的异常处理方法确实存在于特定于平台+编译器的基础上。
在Windows中,例如C程序可以使用SEH异常处理。
我过去曾经看过C函数对setjmp
和longjmp
是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