当前位置: 首页 > wzjs >正文

域名注册后怎么使用seo交流论坛seo顾问

域名注册后怎么使用,seo交流论坛seo顾问,响应网站模板下载,safari网站入口C 异常处理、反射一、异常处理1.Try Catch2.断言3.输出日志到VS输出窗口4.std自带的异常处理二、typeid一、异常处理 1.Try Catch 捕获异常然后进行处理,下面是简单的对抛出的字符串异常进行处理 int b 10;try{if (b 10){throw "Error Code 1001";}}c…

C++ 异常处理、反射

  • 一、异常处理
    • 1.Try Catch
    • 2.断言
    • 3.输出日志到VS输出窗口
    • 4.std自带的异常处理
  • 二、typeid


一、异常处理

1.Try Catch

捕获异常然后进行处理,下面是简单的对抛出的字符串异常进行处理

	int b = 10;try{if (b == 10){throw "Error Code 1001";}}catch (const char* Msg){std::cout << Msg << std::endl;}

我们也可以自定义异常类型进行捕获异常

struct FCustomEx : public std::exception
{virtual char const* what() const override{// TODO:// return p;}
};

下面是使用案例

	int b = 10;try{if (b == 10){throw FCustomEx();}}catch (const FCustomEx& Msg){std::cout << Msg.what() << std::endl;}

注意:可以同时有多种不同的catch

2.断言

使用前需要引入头文件#include <assert.h>
当为false时触发断言

assert(0);

3.输出日志到VS输出窗口

使用前需要引入头文件#include <atlstr.h>

	OutputDebugString(CA2W("Test Out Put!\r\n"));

封装一下支持可变参数的输出到窗口

void out_put_debug_log(const char* in_format,...)
{char buffer[8196] = { 0 };va_list args;va_start(args, in_format);
#pragma warning(push)     // 保存当前警告状态
#pragma warning(disable : 4996) // 禁用4996_vsnprintf(buffer, sizeof(buffer) - 1, in_format,args);
#pragma warning(pop)      // 恢复警告状态va_end(args);OutputDebugString(CA2W(buffer));
}

4.std自带的异常处理

​​std::exception​​:
这是所有标准异常类的基类。它提供了一个虚成员函数what(),返回一个描述异常的字符串。自定义异常通常也继承此类。

​​std::bad_alloc​​:
当使用new操作符进行动态内存分配失败时,会抛出此异常。表示内存不足。

​​std::bad_cast​​:
当使用dynamic_cast对引用类型进行向下转换失败时(即转换的目标类型不是实际对象的类型)抛出此异常。注意:对指针类型转换失败返回空指针,不会抛出异常。

​​std::bad_exception​​:
在意外情况下使用,例如当一个函数抛出未在其异常说明列表中声明的异常时。但注意:C++11后异常说明已被noexcept取代,所以现在较少使用。

​​std::bad_typeid​​:
当typeid操作符的操作数是一个空指针(或对空指针解引用)时,会抛出此异常。

以下是继承自std::logic_error的异常类(通常表示程序逻辑错误,在程序运行前可以避免):

​​std::logic_error​​:
用于表示程序中可检测到的逻辑错误,例如违反类的不变式或违反函数的先决条件。这些错误通常在程序运行前就能避免。

​​std::domain_error​​:
表示数学函数的参数超出了定义域(即无效的参数)。例如,一个函数期望正数却传入了负数。
​​
std::invalid_argument​​:
当函数接收到一个无效参数时抛出。例如,将非数字字符串传递给期待数字的函数。

​​std::length_error​​:
当试图创建一个超出该类型最大长度的对象时抛出。例如,在std::string或std::vector中,试图创建超过max_size()的字符串或容器。

​​std::out_of_range​​:
当访问一个容器或数组时,使用了超出有效范围的索引。例如,std::vector::at()函数在索引越界时会抛出此异常。

以下是继承自std::runtime_error的异常类(通常表示程序运行时发生的错误,难以在运行前预测):

​​std::runtime_error​​:
用于表示程序运行时发生的错误,这些错误难以在程序运行前预测,比如文件读取失败等。

​​std::overflow_error​​:
表示算术上溢错误。例如,在一个算术运算中,结果超出该类型的最大值。

​​std::range_error​​:
表示计算结果超出了值域范围(即结果无效)。通常与浮点数计算相关,例如结果超出浮点数能够表示的范围。

​​std::underflow_error​​:
表示算术下溢错误。例如,结果小于该类型的最小值(比如浮点数太小以至于无法表示)。

总结:

std::exception是所有标准异常类的基类。
直接派生类有:bad_alloc, bad_cast, bad_exception, bad_typeid, logic_error, runtime_error。
logic_error的派生类表示程序逻辑错误,包括:domain_error, invalid_argument, length_error, out_of_range。
runtime_error的派生类表示运行时错误,包括:overflow_error, range_error, underflow_error。
这些异常类提供了更具体的错误信息,帮助开发者定位问题。

二、typeid

typeid是一个运算符,用于在运行时获取类型信息。它返回一个std::type_info对象的引用,该对象包含类型的相关信息。typeid通常用于多态类型,以确定对象的实际类型。

注意如下使用
多态类型​​:要使用typeid获取动态类型(即实际对象类型),基类必须至少有一个虚函数(多态类型)。否则,typeid会返回静态类型(即指针或引用的声明类型)。

struct MyStructBase
{virtual void Init(){}
};struct MyStructChild : public MyStructBase
{};
	MyStructBase* p = new MyStructChild();std::cout << typeid(*p).name() << std::endl;

文章转载自:

http://jMnR8PuR.kgqww.cn
http://q5qq9o4T.kgqww.cn
http://OElbXPG0.kgqww.cn
http://fy25XpiE.kgqww.cn
http://2STrSAcL.kgqww.cn
http://dU9YgnWh.kgqww.cn
http://6CAN9v1B.kgqww.cn
http://69eSkYdN.kgqww.cn
http://iOCeF5It.kgqww.cn
http://ZAHPrr0i.kgqww.cn
http://sz02B8FB.kgqww.cn
http://sSPaLCz1.kgqww.cn
http://DGoE2rda.kgqww.cn
http://fk8o7J4q.kgqww.cn
http://9T3FcNjA.kgqww.cn
http://GdwSdH53.kgqww.cn
http://796LBS9R.kgqww.cn
http://mAbiBz51.kgqww.cn
http://aXIo6Kcy.kgqww.cn
http://37QMezGI.kgqww.cn
http://J5rRqZKc.kgqww.cn
http://uflLZkYl.kgqww.cn
http://W7WWF6qe.kgqww.cn
http://fNQ3265j.kgqww.cn
http://NFJjCMex.kgqww.cn
http://Y6WIKfGZ.kgqww.cn
http://rinpbBkS.kgqww.cn
http://PVS1586s.kgqww.cn
http://a34W4KOX.kgqww.cn
http://J1tkszjt.kgqww.cn
http://www.dtcms.com/wzjs/744350.html

相关文章:

  • 网站域名怎么转dom手表官方网站
  • 做吗查网站的流量wordpress 禁止游客
  • 网站 改版 方案网站推广的建议
  • jsp简述网站开发流程图专门做调查的网站
  • 贵阳网站制作计划免费logo设计在线设计
  • 成都企业网站和恶魔做交易的网站
  • 网站死链接查询网站建设与维护 东博
  • 建站工具缺点可以做宣传图的网站
  • 网站到期如何续费百度文库怎么做网站排名
  • 企业建设营销型网站有哪些步骤wordpress作者排行
  • 做企业网站排名网站如何加入流量统计
  • 网站正在建设中yuss微商城推广平台哪个好
  • windows7PHP网站建设seo是什么的缩写
  • 100m网站空间服务费网站菜单导航制作教程
  • 网站建设企业排行英文版的wordpress能否改中文版
  • 网站ns记录erp软件前十名
  • 网站登录模版 下载高端网站建设公司费用
  • 青白江区城乡和建设局网站wordpress 文章多图
  • android 网站模板海尔网站建设推广
  • 网站组成元素十大接单推广平台
  • 网站运营和seo的区别为什么做可信网站
  • 中学生做的安全作业网站字节跳动公司简介
  • 自己做的网站给人攻击了怎么办通化县住房和城乡建设局网站
  • 网站建设到备案wordpress显示评论数
  • 个人兼职网站建设如何自学做网站
  • 成都网站制作机构美容北京公司网站建设
  • 广州做网站哪家强网站开发工资多少钱
  • 做网站的收益长清治做网站
  • 学做网站应该看那些书小程序定制开发深圳公司
  • 宜宾网站建设哪家好昆明网站建设博滇