C语言中如何实现一个抛出异常的详细过程?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2438个文字,预计阅读时间需要10分钟。
在《C++异常处理》一节中,我们介绍了+C++异常处理的流程,主要包括:+抛出(Throw)+--+检测(Try)+--+捕获(Catch)+。异常必须显式地抛出,才能被检测和捕获;若没有显式的抛出,则无法被检测和捕获。
在《C++异常处理》一节中,我们讲到了 C++ 异常处理的流程,具体为:抛出(Throw)--> 检测(Try) --> 捕获(Catch)
异常必须显式地抛出,才能被检测和捕获到;如果没有显式的抛出,即使有异常也检测不到。在 C++ 中,我们使用 throw 关键字来显式地抛出异常,它的用法为:
throw exceptionData;
exceptionData 是“异常数据”的意思,它可以包含任意的信息,完全有程序员决定。exceptionData 可以是 int、float、bool 等基本类型,也可以是指针、数组、字符串、结构体、类等聚合类型,请看下面的例子:char str[] = "c.biancheng.net"; char *pstr = str; class Base{}; Base obj; throw 100; //int 类型 throw str; //数组类型 throw pstr; //指针类型 throw obj; //对象类型
一个动态数组的例子
C/C++ 规定,数组一旦定义后,它的长度就不能改变了;换句话说,数组容量不能动态地增大或者减小。这样的数组称为静态数组(Static array)。静态数组有时候会给编码代码不便,我们可以通过自定义的 Array 类来实现动态数组(Dynamic array)。所谓动态数组,是指数组容量能够在使用的过程中随时增大或减小。本文共计2438个文字,预计阅读时间需要10分钟。
在《C++异常处理》一节中,我们介绍了+C++异常处理的流程,主要包括:+抛出(Throw)+--+检测(Try)+--+捕获(Catch)+。异常必须显式地抛出,才能被检测和捕获;若没有显式的抛出,则无法被检测和捕获。
在《C++异常处理》一节中,我们讲到了 C++ 异常处理的流程,具体为:抛出(Throw)--> 检测(Try) --> 捕获(Catch)
异常必须显式地抛出,才能被检测和捕获到;如果没有显式的抛出,即使有异常也检测不到。在 C++ 中,我们使用 throw 关键字来显式地抛出异常,它的用法为:
throw exceptionData;
exceptionData 是“异常数据”的意思,它可以包含任意的信息,完全有程序员决定。exceptionData 可以是 int、float、bool 等基本类型,也可以是指针、数组、字符串、结构体、类等聚合类型,请看下面的例子:char str[] = "c.biancheng.net"; char *pstr = str; class Base{}; Base obj; throw 100; //int 类型 throw str; //数组类型 throw pstr; //指针类型 throw obj; //对象类型

