2013年11月23日

C与C++的错误处理

摘要: 通过函数的返回值表示错误,之前已经大量使用过这种方法。这种方法因为有return,函数的右括号会被执行,对象可以正确地被析构。但是这种方法需要层层判断返回值,流程非常繁琐。在UnixC的源代码中,经常是返回值判断的代码比运行的代码还要多。 通过setjmp/longjmp远程跳转。C中的函数,一般是调用一次返回一次,而setjmp比较特殊,是调用一次,返回两次。longjmp也比较特别,是从一个函数是调用,而从另一个函数里返回。这两个函数相互配合,构成远程跳转,实现C中的错误集中处理。第一次调用setjmp时,会将进入函数时的环境信息,包括系统堆栈保存到一个jmp_buf缓冲区中,并返回... 阅读全文

posted @ 2013-11-23 23:55 4IT 阅读(172) 评论(0) 推荐(0)

导航