常见的程序检错方法
二、返回错误码
查看函数的返回值判断程序程序是否正常执行
三、异常机制
四、exception类
也可以分别捕获不同的异常
主要说一下bad_allocc异常
五、异常的注意事项
一、调用abort()
位于头文件 cstdlib中,功能是向标准错误流(cerr)发送消息 abnormal program termination 程序异常终止,然后终止程序二、返回错误码
查看函数的返回值判断程序程序是否正常执行
三、异常机制
- 引发异常
- 使用处理程序捕捉异常
- 使用try块
#include <iostream>
using namespace std;
//语句实际上是跳转,即命令跳转到另一条语句,紧随其后的值指出了异常的特征
//throw 1,即异常的特征是整型,那么在catch 处,catch整型即可
//如果是 字符串,那么就要
//throw "the error ..."
//catch 处填写 catch(const char* s)
int test(int a,int b)
{
if(b==0)
// throw 1;
throw "B can't be zero....";
return a/b;
}
int main()
{
int a,b;
cin>>a>>b;
try
{
test(a,b);
}
catch(const char* s)
{
cout<<s<<endl;
}
return 0;
}
四、exception类
常见的用法,将要出现异常的类继承exception类,重新定义what()函数
#ifndef MYEXCEPTION_H
#define MYEXCEPTION_H
#include <exception>
class myException : public exception
{
public:
myException() {}
const char* what()
{
return "Error ....";
}
virtual ~myException();
private:
};
myException::~myException()
{
//dtor
}
#endif // MYEXCEPTION_H
#include <iostream>
#include "myException.h"
using namespace std;
int main()
{
myException me;
try
{
...
}
catch(exception & e)
{
cout<<e.what()<<endl;
}
return 0;
}
也可以分别捕获不同的异常
主要说一下bad_allocc异常
try
{
new //动态分配内存
}
catch(bad_alloc & ba)
{
cout<<ba.what()<<endl;
exit(EXIT_FALURE);
}
五、异常的注意事项
- 1、使用异常会降低程序的运行速度
- 2、异常规范不适用于模板