概述
#include <iostream>
#include <string.h>
/**
*
*/
using namespace std;
class Myexception{
public:
Myexception(char* str){
error=new char[strlen(str)+1];
strcpy(error,str);
}
~ Myexception(){
if(error!=NULL){
delete[] error;
}
}
//拷贝构造与=重载
Myexception(const Myexception& ex){
this->error=new char[strlen(ex.error)+1];
strcpy(this->error,ex.error);
}
//重载=
Myexception& operator=(const Myexception& ex ){
if(this->error!=NULL){
delete[] this->error;
this->error=NULL;//防止野指针出现
}
this->error=new char[strlen(this->error)+1];
strcpy(this->error,ex.error);
}
public:
void
what(){
cout<<error<<endl;
}
public:
char *error;
};
void
func()
{
throw 1;
}
void
func02()
{
throw "excption";
}
//抛出类对象异常
void func03()
{
throw Myexception("my
current exception");
//匿名对象
}
/******************************************/
void test01()
{
try{
func();
}
catch(int e){
cout<<"interater exception"<<endl;
}
//
try{
//
func02();
//
}
//
catch(char* str){
//
cout<<"字符串异常"<<endl;
//
}
try{
func03();
}
catch(Myexception obj){
obj.what();
}
}
int main(int argc, char *argv[])
{
test01();
return 0;
}
最后
以上就是冷艳月光为你收集整理的C++ 异常类型的全部内容,希望文章能够帮你解决C++ 异常类型所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复