为每天进步一点点而努力。
C++是计算机视觉的重要的一部分,虽然在初始学习时Python应用比较广,但是大多数公司还是C++做计算机视觉类的比较多,因为C++可加密,所以我们来一起探索吧!看了这系列博客,将会学到C++的基本操作!(如果不敲代码,可能会一知半解)
目录
chapter 13 异常处理和总结
13.1.异常处理try,throw,catch,
13.2.C++12天总结
参考文献
异常exception:
异常是指计算机系统在运行时发生意外错误,正在运行的程序被停止。
异常处理是指更改代码流以处理这些异常的行为。
C++ 提供了语言级别的异常处理语法,可以轻松扩展和管理异常处理方式。
常见的异常是除以0或动态分配失败!
可以通过使用 C++ 的异常处理机制来提高可读性。
C++ 提供了一种在结构上处理异常的机制。除了提高可读性和可维护性之外,还可以将异常处理与程序的一般流程分开。
try 块用于指定异常发生的检查范围。也就是说,如果 try 块内发生异常,则由 C++ 异常处理机制处理。
catch 块是一个区域,其中包含处理 try 块中发生的异常的代码,其形状类似于没有返回类型的函数。
catch 块必须始终出现在 try 块之后,try 块中引发的异常在 catch 块中处理。
throw 用于构造一个指示发生异常的语句。
throw expn;
上句中,expn可以是任何可以表达的数据,比如变量、常量、对象等,但必须是包含异常信息的有意义的数据。因此,到达 expn 位置的数据表示为“异常”。
C++ 中的异常处理按以下顺序进行:
1. 到达 try 语句的程序控制执行 try 语句内的代码。
2. 如果此时没有抛出异常,则程序的控制立即移至最后一个 catch 子句之后。
3. 如果发生异常,catch 处理程序按以下顺序查找适当的catch 子句。
3-1。检查堆栈,从 try 语句和最近的 catch 子句开始。
3-2。如果没有找到合适的 catch 子句,则依次检查紧接在下一个外部 try 语句之后的 catch 子句。
3-3。这个过程一直持续到最外面的 try 语句。
3-4。如果仍未找到合适的 catch 子句,则调用预定义的 terminate() 函数。
4. 如果找到适当的catch 子句,则将throw 语句的操作数作为异常对象的形式参数传递。
示例:输入学生数和总分数,求平均数
#include
using namespace std;
int main() {
int students, scores;
cout << "Input student number: ";
cin >> students;
cout << "Input sum: ";
cin >> scores;
cout << "Average number is : " << scores / (double)students << "." << endl;
return 0;
}
如果人数是0 ,那么
这是发生异常,加入异常处理后
#include
using namespace std;
int main() {
int students, scores;
cout << "Input student number: ";
cin >> students;
cout << "Input sum: ";
cin >> scores;
try {
if (students == 0) throw(scores);
cout << "Average number is : " << scores / (double)students << "." << endl;
}
catch (int e) {
cout << "Student num is 0!!" << endl;
cout << "Input scores is " << e << "." << endl;
}
return 0;
}
示例:输入id,要求开头是英文
#include
#include
#include
using namespace std;
int main() {
string id;
try {
cout << "Input id(english): ";
cin >> id;
if (!isalpha(id[0])) throw id;
cout << "id: " << id << endl;
}
catch (string e) {
cout << "Error (" << e << ")" << endl;
}
return 0;
}
1.把握整体构造,再查看其中细节及其实现。
2.学习一门计算机语言和学一门外语一样,首先要了解其中的内在构造,以及它的缘由。
3.计算机语言的基础核心相同,了解中间的微小差异。例如:
C: printf
C++:cout
Python:print
4.在程序代码中是通过变量名对内存单元进行存取操作的,但是代码经过编译后将变量名转换为该变量在内存中的存放地址,对变量值的存取都是通过地址进行的。
5.C++提供了通过地址来访问内存单元的方法,地址可可以称为指针,意思是通过指针能找到内存单元。
6,。指针是一种数据类型,通常所说的指针就是指针变量,是专门用来存放地址的变量。而变量的指针说的就是变量在内存中的地址。变量地址在编写代码时无法获得,只有在程序运行时才可以得到。
【1】[ C++ ] 예외처리 메커니즘( try, catch, throw ) 총 정리
【2】코딩의 시작, TCP School
【3】https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=kks227&logNo=220404335069