类与对象的异常

Cpp异常

#include <iostream>
#include <string.h> using namespace std; //标识错误的类型
class wrong
{
}; int intdiv(int a, int b)
{
try
{
if (b==0)
{
throw 10;//能够是不论什么对象 wrong();
}
int c = a / b;
return c;
}
catch (int data )//类型名
{
cout << "除法异常已经处理";
return -1;
}
} int intdivA(int a, int b)
{
return a / b;
} void main()
{
int x, y;
cin >> x >> y;
try
{
if (y==0)
{
throw "被除数为0";
}
else if (x==0)
{
throw "除数为0";
}
}
catch (const char * s)
{
if (strcmp(s,"被除数为0")==0)
{
cout << "被除数为0异常,请又一次输入";
cin >> x >> y;
}
else if (strcmp(s, "除数为0") == 0)
{
cout << "除数为0异常,请又一次输入";
cin >> x >> y;
}
} std::cout << intdiv(x, y);
cin.get();
cin.get();
cin.get();
}

类的异常

#include<iostream>
using namespace std; class wrong
{
}; class wrongA
{
}; class Array
{
public:
Array(int num)
{
n = num; if (num<=0)
{
throw wrong();
}
p = new int[num];//正确代码在throw之后。不会被运行。
for (int i = 0; i < num;i++)
{
p[i] = 0;
}
} int & operator[](int num)
{
if (num < 0 || num>= n)
{
throw wrongA();
}
return p[num];
}
protected:
private:
int *p;
int n;
}; void main()
{
try
{
Array myarrar(2);
myarrar[-1];
}
catch (wrongA e)
{
cout << "下标越界";
}
catch (wrong e)
{
cout << "程序发生异常,数组大小必须大于等于1";
} cin.get();
} void mainA()
{
int a[3] = { 1, 2, 3 };
// printf("%d", 2[a]);//*(2+a)
// printf("%d", a[9886655]);
getchar();
}
#include<iostream>
#include <string> using namespace std; class box //正方体
{
public:
box(int data)
{
cout << "開始构造";
if (data ==0)
{
zero z1;
z1.errorcode = 212;
throw z1;
}
else if ( data >0 && data<100)
{
throw small();
}
else if (data>10000)
{
throw big();
}
else if (data>100 && data<10000)
{
a = data;
}
else
{
throw wrong{};
}
} int gettiji()
{
return a*a*a;
} class zero
{
public:
int errorcode; };
class wrong{};
class big{};
class small{};
private:
int a;//变长
}; void main()
{
try
{
box newbox(0);
}
catch (box::zero w)
{
if (w.errorcode==22)
{
cout << "22号错误正方体长度不能够为0";
}
else
{
cout << "fei22号错误正方体长度不能够为0";
}
}
catch (box::wrong)
{
cout << "正方体长度异常";
}
catch (box::big)
{
cout << "正方体长度太长";
}
catch (box::small)
{
cout << "正方体长度taiduan";
} cin.get();
}

面试100题1-100

单独整理成文档

最新文章

  1. javascript运动系列第一篇——匀速运动
  2. discuz内置常用CSS代码分析
  3. HD1060Leftmost Digit
  4. python学习之元组
  5. java学用代码
  6. 【iOS知识学习】_UITableView简介
  7. H3 BPM总部乔迁 开启新篇章 筑梦新征程
  8. 网站开发进阶(十二)JS实现打印功能(包括打印预览、打印设置等)
  9. p151开映射札记
  10. 最短路计数——Dijkstra
  11. Scapy Fuzz实现——S7协议从建连到“正常交流“(一)
  12. 命令:hash
  13. 项目发布脚本-nodejs
  14. abaqus学习笔记-abaqus与umat调用基本原理
  15. powerDesiner设计数据库的一些用法
  16. HALCON之喷码OCR识别案例
  17. Java Web编程的主要组件技术——Hibernate核心组件
  18. 『ACM C++』 PTA 天梯赛练习集L1 | 052-053
  19. poj 3404&amp;&amp;poj1700(贪心)
  20. FastJsonUtils工具类

热门文章

  1. times、 time、clock函数说明
  2. 前端读者 | 分分钟让你理解HTTPS
  3. C/C++下__FILE__参数过长的问题解决办法
  4. python操作数据库的几种方式
  5. 使用es索引遇到的问题记录
  6. 一个排好序的数组,找出两数之和为x的所有组合【双指针】
  7. 11.5NOIP2018提高组模拟题
  8. POJ 3537 Crosses and Crosses (NEERC)
  9. python中json与dict之间转换
  10. 13test04:捕鱼