//39CppPrimer_标准异常类c++/例子1
//标准库异常类
//exception
//runtime_error
//rang_error
//overflow_error
//underflow_error
//logic_error
//domain_error
//invalid_argument
//length_error
//out_of_range
//bad_alloc ,new创建时的异常 #include <new>
//39CppPrimer_标准异常类c++/例子1
//标准库异常类
//exception
//runtime_error
//rang_error
//overflow_error
//underflow_error
//logic_error
//domain_error
//invalid_argument
//length_error
//out_of_range
//bad_alloc ,new创建时的异常 #include <new>
#include <iostream>
using namespace std;
class Dog
{
public:
Dog()
{
parr = new int[1000000];//创建动态数组,4M
}
private:
int *parr;
};
int main()
{
//printf("39CppPrimer_标准异常-printf\n");
//cout << "39CppPrimer_标准异常 test" << endl;
Dog *pDog;
try
{
for (int i = 1; i < 1000; i++)//40G内存
{
pDog = new Dog();
cout << i << ":new Dog 成功" << endl;
}
}
catch (bad_alloc err) //bad_alloc ,new创建时的异常 #include <new>
{
cout << "new Dog失败:"<<err.what() << endl;
}
getchar();
return 0;
}
#include <stdexcept>//invalid_argument
//如果不是0和1,就会异常
#include <iostream>
#include <bitset> //容器
#include <string>//使用字符串输出类型
#include <stdexcept>//invalid_argument
using namespace std; //必须导入名称空间,不然string就显示未定义标识符
int main()
{
try
{
string s("1010110010");//如果不是0和1,就会异常
//bitset专门处理二进制
bitset<10> b(s);//b里面放了10个二进制数,默认0,s就是共10个二进制数,放进b里面
cout << "bitset is ok" << endl;
}
catch (invalid_argument err)
{
cout << "bitset error: " <<err.what()<< endl;
}
return 0;
}
#include <stdexcept>//out_of_range 异常类
#include <iostream>
#include <stdexcept>//out_of_range 异常类
using namespace std;
class 学生
{
public:
学生(int 年龄)
{
if (年龄 < 0 || 年龄>150)
throw out_of_range("年龄不能<0或>150");
}
private:
int m_年龄;
};
int main()
{
try
{
学生 张飞(200);
}
catch (out_of_range err)
{
cout << "学生出错: " << err.what() << endl;//what()is throw出来的字符串
}
return 0;
}