C++中怎么使用try和catch捕获异常

技术C++中怎么使用try和catch捕获异常这篇文章主要介绍“C++中怎么使用try和catch捕获异常”,在日常操作中,相信很多人在C++中怎么使用try和catch捕获异常问题上存在疑惑,小编查阅了各式资料,整理出

本文主要介绍“如何在C语言中使用try和catch来捕获异常”。在日常操作中,相信很多人对于如何使用C中的try和catch捕捉异常都有疑惑,边肖查阅了各种资料,整理出简单易用的操作方法,希望能帮助大家解答“如何使用C中的try和catch捕捉异常”的疑惑!接下来,请和边肖一起学习!

00-1010

异常处理

试捕是最重要的C关键词。要捕获语句可能引发的异常,可以将它们放在try块中,并使用catch块来处理try块可能引发的异常:

void some func(){ try { int * pnnumber=new int;* pnnumber=999;删除号码;} catch(……)//catch esallexceptions { cout ' exceptionnsomefunc(),退出' endl}} catch(.)捕获所有未被其他catch块捕获的异常。自定义异常类应继承std::exception,这让你能够重用捕获std::exception异常的所有catch()块

00-1010为变量指定有意义的名称(无论是为你还是为他人)。花更多的时间给变量起一个好名字是值得的。确保初始化变量,如int和float。

请确保将指针初始化为空或——的有效地址,例如运算符new返回的地址。

使用数组时,不要跨越它们的边界。跨越数组边界称为缓冲区溢出,这会导致安全漏洞。

不要使用C风格的字符串(char* '),也不要使用strelen()和strcopy()等函数。Std:string更安全,并提供了许多有用的方法,如获取长度、复制和附加。

仅在确定要包含的元素数量时使用静态数组。在不确定的情况下,应该使用动态数组,如std:vector。

当声明和定义接受非POD类型作为输入的函数时,您应该考虑将参数声明为引用,以避免在调用函数时不必要的复制步骤。

如果类包含原始指针成员,那么在复制或赋值时考虑如何管理内存资源的所有权是很重要的,也就是考虑编写复制构造函数和赋值运算符。

在编写管理动态数组的实用类时,我们必须实现移动构造函数和移动赋值操作符来提高性能。

请确保正确使用const。理想情况下,get()函数不应该修改类成员,所以它应该声明为const函数。同样,除非您想要修改函数参数中包含的值,否则您应该将其声明为常量引用。

不要使用原始指针,而是尽可能使用合适的智能指针。

编写实用类时,一定要努力实现更容易使用的运算符。

如果可以选择,一定要使用模板而不是宏。模板不仅通用,而且类型安全。

编写类时,如果其对象将存储在vector和list等容器中,或者用作映射中的键,请确保实现运算符,该运算符将用作默认的排序标准。如果编写一个长的lambda表达式,应该考虑使用一个函数对象,也就是实现operator()的类,因为函数对象可以重用,只需要维护一个地方。

永远不要认为新操作员一定会成功。对于分配资源的代码,一定要处理它可能抛出的异常,也就是把它放在try块中,并编写相应的catch()块。

永远不要在析构函数中抛出异常。

至此,“C语言中如何使用try和catch捕捉异常”的研究结束,希望能解决大家的疑惑。理论和实践的结合可以帮助你学得更好。去试试吧!如果你想继续学习更多的相关知识,请继续关注网站,边肖会继续努力,给大家带来更多实用的文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/125495.html

(0)

相关推荐

  • 怎么解决Oracle DBLink中CLOB报错ORA-22992

    技术怎么解决Oracle DBLink中CLOB报错ORA-22992本篇内容介绍了“怎么解决Oracle DBLink中CLOB报错ORA-22992”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下

    攻略 2021年11月9日
  • 映射ADO.NET如何设置参数

    技术映射ADO.NET如何设置参数这篇文章主要为大家展示了“映射ADO.NET如何设置参数”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“映射ADO.NET如何设置参数”这篇文

    攻略 2021年12月1日
  • springboot与springcloud版本对应关系是什么

    技术springboot与springcloud版本对应关系是什么今天就跟大家聊聊有关springboot与springcloud版本对应关系是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希

    攻略 2021年10月20日
  • 为什么数据库会丢失数据

    技术为什么数据库会丢失数据今天就跟大家聊聊有关为什么数据库会丢失数据,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。数据库管理系统在今天已经是软件的重要组成部分,开

    攻略 2021年12月2日
  • 别看今天闹得欢,为什么现在肺癌越来越多

    技术别看今天闹得欢,为什么现在肺癌越来越多一说肺癌别看今天闹得欢,立马联想到吸烟。的确,如果一个人烟瘾大,一枝接着一枝的吸,那么会是一口接着一口吸的是烟气,而不是清新的空气。试想 ,会对肺部该有多大的损害。在吸烟如命人的

    生活 2021年10月25日
  • 免费的Web压力测试工具有哪些

    技术免费的Web压力测试工具有哪些这篇文章主要介绍“免费的Web压力测试工具有哪些”,在日常操作中,相信很多人在免费的Web压力测试工具有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”

    攻略 2021年11月18日