听课笔记:

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std; void fun()
{
throw ;//抛出整型异常值
}
void fun02()
{
throw "hello!";//抛出const char* 类型的字符串
} class MyException
{
public:
MyException(const char* str)
{
cout << "构造函数被调用!" << endl;
error = new char[strlen(str) + ];
strcpy(error, str);
}
MyException(const MyException& ex)
{
cout << "拷贝构造函数被调用!" << endl;
error = new char[strlen(ex.error) + ];
strcpy(error, ex.error);
}
MyException operator=(const MyException& ex)
{
cout << "拷贝赋值函数被调用!" << endl;
if (error == ex.error)
{
return *this;
}
delete error;
error = new char[strlen(ex.error) + ];
strcpy(error,ex.error);
error = new char[strlen(ex.error) + ];
strcpy(error, ex.error);
return *this;
}
void what()
{
cout << "捕获异常: " <<error<< endl;
}
~MyException()
{
cout << "析构函数被调用!" << endl;
if (error!=NULL)
{
delete[] error;
} }
private:
char* error;
}; void fun03()
{ //创建一个临时对象,有的老师叫做匿名对象,这将要调用普通构造函数
throw MyException("wrong!");//既然可以抛内建数据类型的变量(对象),那也可以抛自定义类型的对象
} void test01()
{
try
{
fun();
}
catch (int e)//接收整型异常值,接收数据类型和抛出数据类型要匹配
{
cout << "捕获异常: " <<e<< endl;//打印catch到的异常值
}
try //try中放进去你认为可能出错的代码
{
fun02();
}
catch (const char* str1)//捕获异常,参数类型和抛出的数据类型要一致
{
cout << "捕获异常: " << str1 << endl;
}
try
{
fun03();
}
catch (MyException e)//抛出的是个自定义对象,捕获的参数类型也要是一个同类型的对象
{//接收抛出的对象相当于做对象拷贝,这要调用拷贝构造函数
e.what();
}
} int main()
{
test01();
system("pause");
return ;
}

C++的异常捕获的更多相关文章

  1. .NET 基础 一步步 一幕幕[数组、集合、异常捕获]

    数组.集合.异常捕获 数组: 一次性存储多个相同类型的变量. 一维数组: 语法: 数组类型[] 数组名=new 数组类型[数组长度]; 声明数组的语法: A.数据类型 [] 数组名称= new 数据类 ...

  2. MVC 好记星不如烂笔头之 ---> 全局异常捕获以及ACTION捕获

    public class BaseController : Controller { /// <summary> /// Called after the action method is ...

  3. atitit.js浏览器环境下的全局异常捕获

    atitit.js浏览器环境下的全局异常捕获 window.onerror = function(errorMessage, scriptURI, lineNumber) { var s= JSON. ...

  4. C#中的那些全局异常捕获

    1.WPF全局捕获异常     public partial class App : Application     {         public App()         {    // 在异 ...

  5. Spring-MVC开发之全局异常捕获全面解读

    异常,异常 我们一定要捕获一切该死的异常,宁可错杀一千也不能放过一个! 产品上线后的异常更要命,一定要屏蔽错误内容,以免暴露敏感信息! 在用Spring MVC开发WEB应用时捕获全局异常的方法基本有 ...

  6. JavaScript异常捕获

    理论准备 ★   异常捕获 △ 异常:当JavaScript引擎执行JavaScript代码时,发生了错误,导致程序停止运行: △ 异常抛出:当异常产生,并且这个异常生成一个错误信息: △ 异常捕获: ...

  7. SQLServer异常捕获

    在SQLserver数据库中,如果有很多存储过程的时候,我们会使用动态SQL进行存储过程调用存储过程,这时候,很可能在某个环节就出错了,但是出错了我们很难去跟踪到出错的存储过程,此时我们就可以使用异常 ...

  8. Asp.Net MVC3(三)-MvcApp实现全局异常捕获

    定义异常捕获类: [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, Inherited = true, AllowMu ...

  9. iphone 异常捕获处理

    iphone 异常捕获处理 1 void UncaughtExceptionHandler(NSException *exception) { 2 NSArray *arr = [exception ...

  10. iOS异常捕获

    文章目录 一. 系统Crash 二. 处理signal 下面是一些信号说明 关键点注意 三. 实战 四. Crash Callstack分析 – 进⼀一步分析 五. demo地址 六. 参考文献 前言 ...

随机推荐

  1. Keepalived + MySQLfailover + GTIDs 高可用

    架构图     10.1.1.207    mysql master + keepalived     10.1.1.206    mysql slave ( backup master ) + ke ...

  2. 机器学习7—AdaBoost学习笔记

    Adaboost算法原理分析和实例+代码(简明易懂)(转载) [尊重原创,转载请注明出处] http://blog.csdn.net/guyuealian/article/details/709953 ...

  3. 域名解析-CNAME

    不要把域名解析简单看成把一个域名指向一个IP那么简单的事. 事实上域名解析能做的事非常多. 简单样例,假如你买了一台server仅仅有一个IP,你想弄两站点,而且仅仅想直接通过IP就能訪问,就是不加什 ...

  4. 【ubantu】Ubuntu的一些常用命令

    创建文件: touch a.txt 创建文件夹: mkdir NewFolder 删除文件: rm a.txt 删除文件夹: rmdir NewFolder 删除带有文件的文件夹: rm -rf Ne ...

  5. x264源代码学习1:概述与架构分析

    函数背景色 函数在图中以方框的形式表现出来.不同的背景色标志了该函数不同的作用: 白色背景的函数:不加区分的普通内部函数. 浅红背景的函数:libx264类库的接口函数(API). 粉红色背景函数:滤 ...

  6. html5小趣味知识点系列(一)autofocus

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. iOS拓展:react-native创建工程的坑和解决方法

    正文 首先,在创建工程之前,你需要有环境.这个网上很多,不赘述. 我们直接从创建工程开始,一步步记叙这过程. 坑一 一.打开终端,cd到你放文件的位置(我放在桌面了): yuqideMacBook-A ...

  8. Java数据结构-线性表之顺序表ArrayList

    线性表的顺序存储结构.也称为顺序表.指用一段连续的存储单元依次存储线性表中的数据元素. 依据顺序表的特性,我们用数组来实现顺序表,以下是我通过数组实现的Java版本号的顺序表. package com ...

  9. thrift实例

    Thrift实例 Apache thrift是 Facebook 实现的一种高效的.支持多种编程语言的远程服务调用的框架. 它采用接口描述语言定义并创建服务,支持可扩展的跨语言服务开发,所包含的代码生 ...

  10. F - 数论

    F - 数论 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description ...