在c语言中没有异常处理的机制,所有的异常都是靠函数返回值判断的。 而在c++中则存在这样的机制来保证异常的处理,这也是c++吸引c程序员 的原因之一。 尽管博主不太喜欢c++,但c++在某些特性非常适合用于c语言中。 异常处理机制就是其中之一。

异常处理的方法是典型的三段式结构:

try{
							statements in which errors may occure ;
							//       inner the try block , throw statements  exists !
}


catch( data ){
						operations of the data to deal the errors ;
}

一旦出现错误就退回到最近的catch语句中实现错误的处理,建议throw的 数据类型为一个自定义的error类,这样在返回时可以携带大量的错误信息, 便于调试; 特别是在如今大型的项目中,bug层出不穷。 注意错误的传递方式为: 错误的throw为值传递,错误的catch为引用传递。

int main()
{
		int a=1;
		try
		{
				throw a;
		}
		catch(int &b) // 捕获int型异常,减少开销
		{
				cout<<"Something wrong happened: "<<b<<endl;
		}

		return 0;
}

下面这篇关于错误处理的博客可以看下:

https://blog.csdn.net/eijnew/article/details/7302297

ps: 在c++11标准中出现了noexcept声明,表明函数没有异常错误, 这样可以减少代码的复杂程度。