首页 > 其他分享 >4/4 异常

4/4 异常

时间:2023-04-04 23:12:03浏览次数:39  
标签:int void try cast test 异常

1.c++类型转换
![[HR9Q)FZVH6_[3I]SXXX}01Q.jpg]]
![[3_B3B_OCF@J`WE]_1L1K63O.jpg]]
1.静态转换
用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换

father* f = NULL;
son* s = NULL;
//向上 将子类转换为父类
father* f1 = static_cast<father>(s);
//向下 将父类转为子类
son
ss = static_cast<son*>(f);
用于基本数据类型之间的转换 如int char
char zzz = 'a';
int aa = static_cast(zzz);
引用转换
father f;
son s;
father& m = f;
son& z = s;
static_cast<father&>(z);
//向上 将子类转换为父类
static_cast<father&>(z);
//向下 将父类转为子类
static_cast<son&>(f);
///引用
动态转换
1.不支持普通类型
2.对向下造造型检查更为严格
dynamic_cast<son
>(f); erro必须多态

多态条件 1.虚函数 2.继承3.覆盖父类函数

多态下支持动态转换

3,.常量转换
1.常量指针被转化成非常量指针 ,并且仍然指向原来的对象
2.常量引用被转化成非常量指针 ,并且仍然指向原来的对象
const int* p = NULL;
int* pp = const_cast<int>(p);
4.重新解释转换
int a = 10;
int
p = reinterpret_cast<int* >(a);

![[8QCSSNMSJDZK3J{O}RM{[email protected]]]
1.为什么引入异常
![[%WQ{%1P`]@7YQOF{~UHWZHV 1.jpg]]
if(arr=null)
{
return -1;
}
2.异常的基本语法
void test()
{

throw 10;

}

int main()
{
try
{
test();
}
catch (int)
{
printf("接受到了int 异常");
}

}

3. 异常的运行流程
汇编查看
抛出异常会跳过一些异常代码
![[64B7K`BVVZ%E_R)L[LBO)B5.png]]

![[P@000}[}BX$QYL2Y}}$J639.png]]

4.异常的优势
1.明确错误信息
2.异常不能忽略
3.异常向上抛出

include

include<string.h>

void test2()
{
throw 10;

}
void test()
{

try
{
	test2();
}
catch (int)
{
	throw;
}

}

int main()
{

try
{
	test();
}
catch (int)
{
	printf("3");;
}

}

![[8QCSSNMSJDZK3J{O}RM{[email protected]]]
1.为什么引入异常
![[%WQ{%1P`]@7YQOF{~UHWZHV 1.jpg]]
if(arr=null)
{
return -1;
}
2.异常的基本语法
void test()
{

throw 10;

}

int main()
{
try
{
test();
}
catch (int)
{
printf("接受到了int 异常");
}

}

3. 异常的运行流程
汇编查看
抛出异常会跳过一些异常代码
![[64B7K`BVVZ%E_R)L[LBO)B5.png]]

![[P@000}[}BX$QYL2Y}}$J639.png]]

4.异常的优势
1.明确错误信息
2.异常不能忽略
3.异常向上抛出

include

include<string.h>

void test2()
{
throw 10;

}
void test()
{

try
{
	test2();
}
catch (int)
{
	throw;
}

}

int main()
{

try
{
	test();
}
catch (int)
{
	printf("3");;
}

}

标签:int,void,try,cast,test,异常
From: https://www.cnblogs.com/Agtw/p/17288232.html

相关文章

  • Java笔记(8) 异常和错误
    异常的简单分类检查性异常:最具代表性的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如用户要打开一个不存在的文件,一个异常就发生了,这些异常在编译时不能被简单的忽略。运行时异常:运行时异常是可能被程序员避免的异常,与检查性异常相反,运行时异常可以在编译时......
  • 【达梦】偶现“网络通信异常”
    背景:DRUID+mybatis+达梦数据库上线后,偶现“网络通信异常”的错误解决方案原因:不知道但解决方案是在application.yml上的druid配置做了一下调整一开始druid的配置是这样子的:druid:url:jdbc:dm://10.12.xx.xx:5236/dev?useUnicode=true&characterEncoding=UT......
  • 06-信道、互斥锁、异常处理、Gin框架beego的使用
    1goroutine协程//1并发和并行并发:同一时间段内,多个任务在执行(单个cpu,执行多个任务)并行:同一时刻,多个任务在执行(多个cpu的支持)//注:编程语言中,因为Python有GIL全局解释器锁,导致同一时刻,同一个进程中只能运行一个线程===>延伸出开启多进程,解决利用上多核优......
  • 跟着查老四学Python Day 6:文件操作和异常处理
    文件操作例行寒暄之后,课程正式开始查老四:好的,我们来学习一下Python中的文件操作。文件操作是编程中非常基础和重要的一部分,它允许我们读取和写入文件。Python支持文本文件和二进制文件的读写,下面我们来逐一介绍。首先,我们需要打开一个文件。Python中使用open()函数来打开文件,它的语......
  • C#异常没有错误行号的原因
    异常处理是编程中必知必会的重要内容,我们经常使用try-catch来捕获和记录异常信息的原因、位置信息,以便进行排查和解决问题。使用堆栈信息可明确抛出异常具体行号,但有时输出的却没有行号。如123System.DivideByZeroException:尝试除以零。在ExceptionTest.Form1.F......
  • 易基因: oxRRBS+RRBS揭示炎症性肠病导致发育异常的表观遗传机制|甲基化研究
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。2020年12月31日,美国明尼苏达大学NataliaY.Tretyakova教授团队在《IntJMolSci》杂志发表题为“Multi-OmicsCharacterizationofInflammatoryBowelDisease-InducedHyperplasia/DysplasiaintheRag2-/-/Il10......
  • Apache/doris docker启动异常
    环境CPU:x86_64操作系统:ArchLinux(单节点,虚拟机,invmwareworkstation16player)Kernel:Linuxarchlinux6.2.9-arch1-1dorisdocker版本:apache/doris1.2.2-be-x86_64apache/doris1.2.2-fe-x86_64现象启动fe和be后,fe在十几秒后exit,be正常复现流程1.拉......
  • urilib: ajax&异常&cookie登陆&handler&代理[池]
    urllib_9_ajax的get请求豆瓣电影第一页""".-''-..--._..._.'.-.)|__|......
  • 异常处理
    异常概述与异常体系结构异常:在java语言中,讲程序执行中发生的不正常情况称为“异常”。(开发过程中的语法错误和逻辑错误不是异常)Java程序在执行过程中所发生的异常时间可分为两类:Error:Java虚拟机无法解决的严重给你问题。如:JVM系统内部错误、资源耗尽等严重情况。比如:StackOver......
  • vmware15pro的主机换了新电脑用vmware16Pro打开运行异常处理
    因为换新电脑导致必须从旧笔记本上把所有试验用的虚拟机全部迁移过来,原电脑使用的vmware15pro,创建了若干主机。新电脑开机后安装的vmware16pro,直接把安装虚拟机的文件夹全部复制到新机器下,现象: 新电脑打开虚拟机文件时是正常的,大概一分钟左右,宿主机的CPU和内存全部100%,虚拟机......