C++异常处理基本语法的使用
抛出异常的语法定义
void function() throw(抛出表达式类型){
throw 表达式;
}
捕获分析异常的语法定义
try{
function();
//如果function()有异常就不会往下执行
cout << “你猜猜”<<endl;}catch(接受 1 异常类型声明){
异常处理
}catch(接受 2 异常类型声明){
异常处理
}catch(…){ //非预判类型
异常处理
}
使用总结
1. 通过throw 操作创建一个异常对象并抛掷
2. 在需要捕捉异常的地方,将可能抛出异常的程序段嵌在try到catch块中
3. 按正常的程序顺序执行到达try语句,然后执行try{}catch中
4. 如果try{}catch中没有异常,就不会执行catch 后边的语句
5. 程序就会从上往下执行
注意:如果抛出的类型在catch中没有匹配的,程序就会终止
代码展示区
#include<iostream>
#include<windows.h>
using namespace std;
void print(int& a, int& b, int& c)
throw(int,string,float) //声明抛出类型,如果声明不全就编译报警告
{
if (a > b) {
throw 886;
}
else if (a > c)
{
throw new string("怎么可能啊!");
}
else if (b > c) {
throw 0.01f;
}
else if (c > b) {
throw "你好怪啊!";
}
};
int main() {
int a = 1;
int b = 5;
int c = 3;
try
{
print(a, b, c);
//如果有异常就会跳出,不会按顺序往下执行
cout << "你猜猜" << endl;
}
catch (int num) //接受Int类型
{
cout << "接口 1 catch (int num)" << num << endl;
}
catch (string* num) //接受string类型
{
cout << "接口 2 catch (string* unm)" << *num << endl;
}
catch (float num) //接受float类型
{
cout << "接口 3 catch (float num)" << num << endl;
}
catch (const char* num) //接受常char *类型
{
cout << "接口 4 catch (const char* num)" << num << endl;
}
catch (...) //接受未知类型
{
cout << "走过鬼" << endl;
}
system("pause");
return 0;
}