快速入门C++第八天——异常处理和命名空间
- 该系列文章大部分摘自博主白鳯《C++面向对象程序设计》✍千处细节、万字总结(建议收藏)
http://t.csdn.cn/GxZ6U
- 如有不好的影响请联系删除
异常处理
程序中常见的错位分为两大类:编译时错误和运行时错误。编译时的错误主要是语法错误,如关键字拼写错误、语句末尾缺分号、括号不匹配等。运行时出现的错误统称为异常,对异常的处理称为异常处理。
C++处理异常的办法:如果在执行一个函数的过程中出现异常,可以不在本函数中立即处理,而是发出一个信息,传给它的上一级(即调用函数)来解决,如果上一级函数也不能处理,就再传给其上一级,由其上一级处理。如此逐级上传,如果到最高一级还无法处理,运行系统一般会自动调用系统函数terminate(),由它调用abort终止程序。
#include <iostream>
#include <cmath>
using namespace std;
double triangle(double a, double b, double c) {
double s = (a + b + c) / 2;
if (a + b <= c || a + c <= b || b + c <= a) {
throw 1.0; //语句throw抛出double异常
}
return sqrt(s * (s - a) * (s - b) * (s - c));
}
int main() {
double a, b, c;
try {
cout << "请输入三角形的三个边长(a, b, c): " << endl;
cin >> a >> b >> c;
if (a < 0 || b < 0 || c < 0) {
throw 1; //语句throw抛出int异常
}
while (a > 0 && b > 0 && c > 0) {
cout << "a = " << a << " b = " << b << " c = " << c << endl;
cout << "三角形的面积 = " << triangle(a, b, c) << endl;
cin >> a >> b >> c;
if (a <= 0 || b <= 0 || c <= 0) {
throw 1;
}
}
} catch (double) {
cout << "这三条边不能构成三角形..." << endl;
} catch (int) {
cout << "边长小于或等于0..." << endl;
}
return 0;
}
命名空间和头文件命名规则
命名空间:一个由程序设计者命名的内存区域。程序设计者可以根据需要指定一些有名字的命名空间,将各命名空间中声明的标识符与该命名空间标识符建立关联,保证不同命名空间的同名标识符不发生冲突。
1.带扩展名的头文件的使用
在C语言程序中头文件包括扩展名.h,使用规则如下面例子
#include <stdio.h>
2.不带扩展名的头文件的使用
C++标准要求系统提供的头文件不包括扩展名.h,如string,string.h等。
#include <cstring>