uacs2024

导航

带析构语义的类的C++异常处理

C++异常处理

#include <iostream>
#include <string>
using namespace std;
class MyException { public: MyException(const string &message):message(message){} ~MyException(){} const string &getMessage() const { return message; } private: string message; }; class Demo { public: Demo(){ cout << "Constructor of Demo" << endl; } ~Demo(){ cout <<"Destructor of Demo" << endl; } }; void func() throw (MyException) { Demo d; //执行构造函数 cout << "Throw MyException in func()" << endl; throw MyException("exception thrown by func()"); } int main(){ cout << "In main function" << endl; try { func(); }catch(MyException& e){ cout << "Caught an exception:" << e.getMessage()<< endl; } cout << "Resume the execution of main()" << endl; return 0; }

结果

In main function
Constructor of Demo
Throw MyException in func()
Destructor of Demo
Caught an exception:exception thrown by func()
Resume the execution of main()

 

posted on 2024-03-06 22:03  ᶜʸᵃⁿ  阅读(1)  评论(0编辑  收藏  举报