这个问题是因为我在看this talk 谈话后半部分的很大一部分用于回归,第四部分是关于c ++中的异常处理和非异常处理。
我主要使用c,但我想让一些有经验的程序员帮助理解这一点。
我没有编写任何真正做过异常的代码,我已经完成了java代码,这基本上迫使你添加try / catch块等。
当他说异常处理与非异常处理时,这意味着java几乎强迫你在任何不安全代码周围添加这些块的方式,而在c中基本上如果你不记得这样做你的应用程序会崩溃吗?
答案 0 :(得分:2)
您必须考虑到异常通常是面向对象编程的构造 - 这就是Java,C#,C ++等经常讨论异常和try / catch块的原因。
在C中,情况并非如此。通常,程序员需要通过返回值来捕获错误(C标准使用errno来跟踪某些函数返回的任何错误值)。
如果出现问题,C会崩溃或出现意外行为 - 这就是异常的来源。它们是更好的构造,用于确定出错的地点,方式和原因。
没有办法在C中制作例外,但是可以用POSIX信号做类似的事情 - 虽然不推荐,除非你真的知道你在做什么。最好使用返回值来确定某人出错/正确的时间。