1、assert函数
这个函数是在c语言的assert.h库文件里定义的,所以包含到c++程序里我们用以下语句:
#include <cassert>
assert( )函数需要有一个参数,它将测试这个输入参数的真or假状态.
---如果为真,Do nothing
---如果为假, Do something
#include <iostream>
#include <cassert>
using namespace std;
int main()
{
int i = 20;
assert(i == 65);
return 0;
}
我们可以利用它在某个程序里的关键假设不成立时立刻停止该程序的执行并报错,从而避免发生更严重的问题。另外,除了结合assert()函数,在程序的开发、测试阶段,我们还可以使用大量的cout语句来报告在程序里正在发生的事情。
2、捕获异常
同样为了对付潜在的编程错误(尤其是在运行时的错误),捕获异常是一种完全不同的办法。
异常(exception)就是与预期不相符合的反常现象。
基本使用思路:
(1)安排一些c++代码(try语句),去尝试某件事,尤其是那些可能会失败的事(比如打开一个文件或申请一些内存)
(2)如果发生问题,就抛出一个异常(throw语句)
(3)再安排一些代码(catch语句)去捕获这个异常并进行相应的处理。
捕获异常的基本语法是:
try
{
//Do something
//Throw an exception on error
}
catch
{
//Do whatever
}
注意:每条try语句至少要有一条配对的catch语句。必须定义catch语句以便让它接收一个特定类型的参数。
c++还允许我们定义多条catch语句,让每条catch语句分别对应着一种可能的异常类型:
---catch(int e){。。。}
---catch(bool e){。。。}
---catch(。。。){。。。}
最后一条catch语句可以捕获任何类型的异常。