qfedu-cpp-level/day8/d6.cpp

46 lines
850 B
C++

// 异常接口声明
// 如: 结构体作为异常对象
#include <iostream>
#include <cstring>
using namespace std;
struct ERROR_S
{
string title; // 错误信息
int errnum; // 错误码
} error_1; // ERROR_S error_1; // error_1 是一个全局变量
void test1(int n) throw(ERROR_S, int)
{
if (n == 0)
{
error_1.title = "n 参数不能为 0";
error_1.errnum = 1;
throw error_1;
}
else if (n == 1)
{
throw 2;
}
cout << "n = " << n << endl;
}
int main()
{
try
{
test1(1);
}
catch (const ERROR_S &error)
{
cout << "捕获异常: " << error.title << endl;
cout << "错误码: " << error.errnum << endl;
}
catch (...)
{ // ... 表示其他异常
cout << "捕获其他异常" << endl;
}
return 0;
}