在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声明,表明函数没有异常错误, 这样可以减少代码的复杂程度。