我已经定义了一个简单的int错误代码:
#define my_error 20
Run Code Online (Sandbox Code Playgroud)
在我的代码中的某处我抛出此错误:
throw my_error;
Run Code Online (Sandbox Code Playgroud)
现在我想尝试捕获抛出的这个异常:
try
{
...
...
}
catch (my_error)
{
cout << "Error: my error";
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,编译器不批准这个:
有没有办法做到这一点 ?
谢谢.
20不是一种类型,所以你无法抓住它.你可以做的是过滤catch块中的值:
catch (int exception)
{
if ( exception == 20 )
cout << "Error: my error";
}
Run Code Online (Sandbox Code Playgroud)
更好的方法是定义自己的异常:
class MyException : public std::exception
{
}
//...
try
{
throw MyException();
}
catch(MyException& ex)
{
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2294 次 |
| 最近记录: |