46 lines
850 B
C++
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;
|
||
|
}
|