首页 > 其他分享 >69. 异常变量的生命周期

69. 异常变量的生命周期

时间:2024-09-02 15:25:00浏览次数:6  
标签:生命周期 变量 抛出 MyException 调用 catch 69 throw 构造函数


  • 异常变量的生命周期
  • //抛出的是 throw MyException(); catch (MyException e) 调用拷贝构造函数 效率低
  • //抛出的是 throw MyException(); catch (MyException &e) 只调用默认构造函数 效率高 推荐
  • //抛出的是 throw &MyException(); catch (MyException *e) 对象会提前释放掉,不能在,非法操作
  • //抛出的是 new MyException(); catch (MyException *e) 只调用默认构造函数 自己要管理释放
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;

class MyException
{
public:
	MyException()
	{
		cout << "MyException默认构造函数调用" << endl;
	}

	MyException(const MyException & e)
	{
		cout << "MyException拷贝构造函数调用" << endl;
	}

	~MyException()
	{
		cout << "MyException析构函数调用" << endl;
	}

};

void doWork()
{
	throw  new MyException();
}

void test01()
{
	try
	{
		doWork();
	}
	//抛出的是 throw MyException();  catch (MyException e) 调用拷贝构造函数 效率低
	//抛出的是 throw MyException();  catch (MyException &e)  只调用默认构造函数 效率高 推荐
	//抛出的是 throw &MyException(); catch (MyException *e) 对象会提前释放掉,不能在非法操作
	//抛出的是 new MyException();   catch (MyException *e) 只调用默认构造函数 自己要管理释放
	catch (MyException *e)
	{
		cout << "自定义异常捕获" << endl;
		delete e;
	}

}

int main(){
	test01();


	system("pause");
	return EXIT_SUCCESS;
}


标签:生命周期,变量,抛出,MyException,调用,catch,69,throw,构造函数
From: https://blog.51cto.com/zaishu/11898425

相关文章

  • 69. 异常的多态使用
    异常的多态使用提供基类异常类classBaseException纯虚函数virtualvoidprintError()=0;子类空指针异常和越界异常继承BaseException重写virtualvoidprintError()测试利用父类引用指向子类对象#define_CRT_SECURE_NO_WARNINGS#include<iostream>usingname......
  • Windows批处理中的变量和值
    通过前面对批处理的介绍,我们已经准备好了开始编码,今天我们将讨论变量、值和批处理的set命令,该命令将一个值赋值给一个变量。如果您用过其他计算机语言做过开发,这些可能显得微不足道,但是批处理有一些独特的特性需要我们去注意。通过本文,您将学习如何在控制台中显示变量的值,以确认......
  • 20240905_000339 mysql 存储过程 用户自定义变量
    自定义变量的特点一个@符号定义自定变量打印自定变量另一种定义方式查询赋值......
  • 20240905_010339 mysql 存储过程 局部变量
    ......
  • 我可以将 javascript 变量设置为包含 php 代码输出的字符串吗?
    在JavaScript中,你可以将一个变量设置为包含PHP代码输出的字符串。你可以使用AJAX(异步JavaScript和XML)或FetchAPI来从服务器获取PHP代码的输出,并将其存储在JavaScript变量中。以下是使用AJAX的示例代码://创建一个XMLHttpRequest对象varxhr=newXMLHttpReque......
  • Codeforces Round 969 Div.2+Div.1
    A.Dora'sSet注意到任意两个偶数的\(\gcd\)都大于\(1\),因此选择的三个数中至多一个偶数,而注意到相邻的奇数一定互质,因此每次选两个奇数一个偶数,答案=奇数的个数÷2点击查看代码#include<bits/stdc++.h>usingnamespacestd;#definelllonglong#defineullunsigned......
  • 不借用中间变量交换两个变量值
    方法1:通过加减法运算来交换,缺点是当两个数值的和超出了数据类型的存储范围时会发生溢出 1#include<stdio.h>2intmain(){3inta=10,b=20;4printf("交换前:\na=%d,b=%d",a,b);5a=a+b;//将a,b的和存放在a中,b的值没有改变6b=a-b;//a-b的值即......
  • Vue入门(三)Vue生命周期
    一、Vue生命周期Vue生命周期的八个阶段创建前beforeCreate创建后created载入前beforeMount载入后mounted更新前beforeUpdate更新后updated销毁前beforeDestroy销毁后destroyedVue生命周期的八个阶段如下图:  二、生命周期示例生命周期示例代码: <!DOCTYPEhtml>......
  • ABC369F F - Gather Coins 题解
    题目链接:https://atcoder.jp/contests/abc369/tasks/abc369_f题目大意:在一个\(H\timesW\)的二维迷宫中有\(N\)枚硬币,其中第\(i\)枚硬币在\((R_i,C_i)\)(本题中,我们用\((r,c)\)表示二维迷宫中从上到下第\(r\)行从左到右第\(c\)列的那个格子)。你一开始在迷宫的左......
  • AtCoder Beginner Contest 369 补题记录
    A-369题意:给定A和B,求有多少个x可以和A,B构成等差数列思路:分三种情况讨论A==B则x不得不与A和B想等x位于A和B中间只有B-A为偶数才有这种情况存在x位于A和B两边可以在左边也可以在右边,只要A!=B这种情况总会存在voidsolve(){inta=read(),b=read();......