c++ - 如何知道 std::exception 的异常类型
问题描述
我有一个如下所示的 try-catch 块
try
{
// Do something here.
}
catch (const std::exception &e)
{
// std exception.
}
catch(...)
{
// Unknown exception. We can't know the type.
}
我正在阅读来自http://www.cplusplus.com/reference/exception/exception/的一些文档,但对我来说,当代码进入 std::exception 部分时如何知道捕获了什么异常类型并不明显。
有没有办法获取错误类型的字符串?(我不想显示错误消息,只是异常类型)
解决方案
有没有办法获取错误类型的字符串?
有点。如果您通过引用捕获(正如您在上面的代码中所做的那样),那么您可以应用typeid
到异常以获取有关其动态类型的一些信息。这是std::exception
多态类型的事实,这使得这成为可能。但是,不能保证这std::type_info::name()
是该类型的可读名称。
推荐阅读
- drupal - drupal8:如何安装模块?
- react-native - 如何在 React Navigation V5 中为每次启动启动启动画面?
- excel - 格式化单元格以根据行号引用另一个工作表
- angular - 当 auth Guard 发送用户登录或注册时,Angular 9 和 Ionic 重定向到上一页
- django - Django 3 设置 django_language cookie
- laravel - laravel 表单搜索数据库中不可用的数据
- android - 如何以编程方式为工具栏内的所有图标设置 colorControlHighlight (波纹颜色)?
- python - Python:解析连接的 JSON
- java - Google App Engine MemcacheService.delete(key, millisNoReAdd) 并不总是支持并发推杆
- machine-learning - LSTM 中的 NumHiddenUnits