Fork me on GitHub
摘要: 标准库里的异常类 C++标准提供了一组标准异常类,这些类以基类 Exception 开始,标准程序库抛出的所有异常,都派生于该基类,这些类构成如图所示的异常类的派生继承关系,该基类提供一个成员函数 what(),用于返回错误信息(返回类型为 const char*)。在 Exception 类中,w 阅读全文
posted @ 2020-03-20 01:07 索智源 阅读(1271) 评论(0) 推荐(1) 编辑
摘要: 异常处理的基本思想 C++的异常处理机制使得异常的引发和异常的处理不必在同一个函数中,这样低沉的函数可以着重解决具体问题,而不必过多的考虑异常的处理。上层调用者可以再适当的位置设计对不同类型异常的处理。 异常是专门针对抽象编程中的一系列错误进行处理的。C++中不能借助函数机制实现异常,因为栈结构的本 阅读全文
posted @ 2020-03-20 01:06 索智源 阅读(562) 评论(0) 推荐(0) 编辑
摘要: 异常和继承 异常也是类,我们可以创建自己的异常类,在异常中可以使用(虚函数,派生,引用传递和数据成员等), 下面用一个自制的数组容器Vector,在对Vector初始化时来对Vector的元素个数进行有效检查。以此来说明继承与异常的使用关系。 运行下方代码,Vector对象传不同参数进去,会触发相应 阅读全文
posted @ 2020-03-20 00:56 索智源 阅读(718) 评论(0) 推荐(0) 编辑
摘要: 异常类型的生命周期 1. throw 基本类型: int、float、char 这三种类型的抛出和函数的返回传值类似,为参数拷贝的值传递。 1 int test_1(int num) throw (int, double, char) 2 { 3 if (num == 0) 4 { 5 throw 阅读全文
posted @ 2020-03-20 00:54 索智源 阅读(1003) 评论(0) 推荐(1) 编辑
摘要: 异常处理接口声明 1 一般为了方便程序员阅读代码,提高程序的可读性,会将函数中的异常类型声明至函数头后方,不用一行一行的找抛出内容: 2 这里要注意一点,这属于C++的标准语法,但在VS中这个操作不被承认,会抛出警告。 3 如果一个函数不想抛出任何异常,可以单写一个 throw() 声明。 1 in 阅读全文
posted @ 2020-03-20 00:48 索智源 阅读(588) 评论(0) 推荐(0) 编辑
摘要: 2. 异常处理的基本语法 下面是一个基本的代码例子,说明 throw、try、catch的基本用法,与 catch 的类型自动匹配: 1 #include <iostream> 2 #include <string> 3 4 using namespace std; 5 6 int test_1(i 阅读全文
posted @ 2020-03-20 00:47 索智源 阅读(606) 评论(0) 推荐(0) 编辑