自己编译时候的一个警告by earlier handler for ‘std::exception’

2023-05-16

看自己编写的下面一段代码

#include <string>
#include <iostream>
#include <stdexcept>
#include <exception>
#include <new>
//#include <type_info>
using namespace std;
int main()
{
int a = 0;
try{
	if(a == 0)
		throw exception();
	if(a == 1)
		throw bad_alloc();

	if(a == 2)
		throw bad_cast();
}
catch (exception e){ cout <<  e.what() << endl;}
catch (bad_alloc e){ cout << e.what() << endl;}
catch (bad_cast e){cout << e.what()  << endl;}

	return 9;
}

g++编译器,编译时候会提示警告:

3.cc:21:1: warning: exception of type ‘std::bad_alloc’ will be caught
 catch (bad_alloc e){ cout << e.what() << endl;}
 ^~~~~
3.cc:20:1: warning:    by earlier handler for ‘std::exception’
 catch (exception e){ cout <<  e.what() << endl;}

自己稍微查了下,发现catch语句块必须得安排下顺序,不能随意乱安排。所以自己改了下:

把 catch (exception e){}放在最后。在c++primer书上也说过,越是具体的异常类型处理,越是得放在前面。越是通用的异常,越该放后面。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自己编译时候的一个警告by earlier handler for ‘std::exception’ 的相关文章

  • rmi类找不到异常

    我使用 java rmi 编写了一个简单的项目并导出到可执行 jar 文件 当我尝试运行它时 有时会出现异常 有时会起作用 当我指定 Djava rmi server codebase file serverClasses 时 它似乎没有正
  • Session_set_save_handler 未设置

    我在设置 session set save handler 时遇到问题 我将 php ini 配置为 session handler user 这个简单的测试失败了 Define custom session handler if sess
  • 如何将 printStackTrace() 中的异常写入 Java 中的文本文件?

    我需要用 Java 捕获文本文件中的异常 例如 try File f new File catch FileNotFoundException f f printStackTrace instead of printing into con
  • 关于pl/sql异常的问题

    以下文字摘录自oracle文档Oracle Database PL SQL 语言参考 11g 第 1 版 11 1 未处理的异常也会影响 子程序 如果退出子程序 成功后 PL SQL 将值分配给 输出参数 但是 如果您退出 带有未处理的异常
  • Android 中的未知主机异常

    当我运行我的应用程序时 有时 网络突然断开 我 在我的应用程序中出现unknownhostException 在这种情况下 如果我 检查浏览器 出现同样的异常 我不知道为什么互联网 突然断线 仅当我重新启动时它才能正常工作 再次模拟器 如果
  • 捕获 Angular 2 异常

    如果 Angular 2 遇到内部异常 则不会将其记录到控制台 我怎样才能检测到像下面这样的异常 EXCEPTION Error during instantiation of MainFormComponent ORIGINAL EXCE
  • 在新表达式中分配内存后是否评估初始化程序?

    考虑代码 auto p new T U std move v 那么初始化器就是U std move v 我们假设T U std move v 不抛出 如果在底层内存分配之后评估初始化程序 则代码是强异常安全的 否则 就不是 内存分配被抛出
  • 我可以在堆栈展开期间使用 std::current_exception 吗?

    是否可以在堆栈展开期间销毁的对象的析构函数内使用 std current exception 有关 cppreference 的文档 http en cppreference com w cpp error current exceptio
  • Ruby“定义”?操作员工作错误?

    所以 我们有代码 class Foo def bar puts Before existent defined some variable puts Before not existent defined nonexistent varia
  • 什么可能导致主键异常?

    我的 ASP 页使用以下存储过程将会话变量存储在 SQL Server 中 CREATE PROCEDURE dbo MyProcedure sessionId varchar 512 variable varchar 350 value
  • 事件处理程序中的“对 SetCurrentCellAddressCore 的可重入调用” - 仅当单元格行索引和列索引相等时

    我正在制作一个 WinForms 应用程序 其中包含一个使用DataGridView处理简单的数据操作 确保准确输入 同时减少混乱 阅读 不使用DataGridViewComboBoxColumn 我有几个事件处理程序可以暂时将DataGr
  • 来自外部 DLL 的未处理的 DivideByZero 异常 - C#

    我有一个 C net 4 0 程序 其主要功能是从外部 FTP 库 项目引用的 dll 调用方法 逻辑位于 try catch 块中 catch 会打印错误 异常处理程序有一个通用参数 catch Exception ex IDE是VS 有
  • 使用 LINQ 分割字符串

    我想按我的结果和字符串行中的匹配数进行排序 所以这是代码 ThenByDescending p gt p Title ToLower Split Count w gt words Any w Contains 但它给我带来错误并说 LINQ
  • Haskell 错误处理方法

    毫无疑问 Haskell 中有多种机制来处理错误并正确处理它们 错误单子 要么 也许 异常等 那么为什么用其他语言编写容易出现异常的代码比用 Haskell 感觉更简单呢 假设我想编写一个命令行工具来处理命令行上传递的文件 我想 验证提供的
  • WCF 的“using”语句中出现异常,未正确关闭连接。如何关闭有故障的 WCF 客户端连接或出现异常的连接?

    StackOverflow 上有几个有关关闭 WCF 连接的问题 但排名最高的答案是指此博客 http marcgravell blogspot com 2008 11 dontdontuse using html http marcgra
  • XAML解析异常

    我有一个简单的 XAML 页面 当它作为 Visual Studio 中任何应用程序的一部分加载时 加载效果良好 但是 当我使用 ClickOnce 部署此应用程序时 出现以下异常 Type System Windows Markup Xa
  • 使用完成处理程序在 Swift 中调用连续动画

    我正在制作一个可以显示化学反应动画的应用程序 每个原子都是一个 SCNSphere 并通过 SCNActions 进行动画处理 我尝试使用 runAction 中的完成处理程序在当前操作完成后调用下一个动画 因为每个原子必须做出很多不同的运
  • GetWindowText() 抛出错误并且没有被 try/catch 捕获

    当我为 GetWindowText 运行下面的代码时 我收到作为内部异常抛出的以下错误 尝试读取或写入受保护的内存 这通常表明其他内存已损坏 DllImport user32 dll EntryPoint GetWindowTextLeng
  • 未捕获 Func<> 的异常(异步)

    我有以下代码 为了进行此重现而进行了简化 显然 catch 异常块将包含更多逻辑 我有以下代码 void Main var result ExecuteAction async gt Will contain real async code
  • Liferay ClassNotFoundException:DLFileEntryImpl

    在我的 6 1 0 Portal 实例上 带有使用 ServiceBuilder 和 DL Api 的 6 1 0 SDK Portlet 这一行 DynamicQuery query DynamicQueryFactoryUtil for

随机推荐