catch基类和子类异常
来源:互联网 发布:如何用java写一个爬虫 编辑:程序博客网 时间:2024/06/07 00:29
#include <iostream>
using namespace std;
class X {
public:
class Trouble {};
class Small : public Trouble {};
class Big : public Trouble {};
void f() { throw Big(); }
};
int main() {
X x;
try {
x.f();
} catch(X::Trouble&) {
cout << "caught Trouble" << endl;
// Hidden by previous handler:
} catch(X::Small&) {
cout << "caught Small Trouble" << endl;
} catch(X::Big&) {
cout << "caught Big Trouble" << endl;
}catch(...) {
cout << "an exception was thrown" << endl;
}
} ///:~
using namespace std;
class X {
public:
class Trouble {};
class Small : public Trouble {};
class Big : public Trouble {};
void f() { throw Big(); }
};
int main() {
X x;
try {
x.f();
} catch(X::Trouble&) {
cout << "caught Trouble" << endl;
// Hidden by previous handler:
} catch(X::Small&) {
cout << "caught Small Trouble" << endl;
} catch(X::Big&) {
cout << "caught Big Trouble" << endl;
}catch(...) {
cout << "an exception was thrown" << endl;
}
} ///:~
再rethrow一次
#include <iostream>
using namespace std;
class X {
public:
class Trouble {};
class Small : public Trouble {};
class Big : public Trouble {};
void f() { throw Big(); }
};
int main() {
X x;
try
{
try {
x.f();
} catch(X::Trouble&) {
cout << "caught Trouble" << endl;
throw;
} catch(X::Small&) {
cout << "caught Small Trouble" << endl;
} catch(X::Big&) {
cout << "caught Big Trouble" << endl;
}
}catch(...)
{
cout<<"rethrow caught"<<endl;
}
} ///:~
using namespace std;
class X {
public:
class Trouble {};
class Small : public Trouble {};
class Big : public Trouble {};
void f() { throw Big(); }
};
int main() {
X x;
try
{
try {
x.f();
} catch(X::Trouble&) {
cout << "caught Trouble" << endl;
throw;
} catch(X::Small&) {
cout << "caught Small Trouble" << endl;
} catch(X::Big&) {
cout << "caught Big Trouble" << endl;
}
}catch(...)
{
cout<<"rethrow caught"<<endl;
}
} ///:~
可以跑,但是有警告,warning: exception of type `X::Small' will be caught。。。。。。。不晓得原因。
- catch基类和子类异常
- 多重 catch 语句中,异常类型必须子类在前父类在后
- 子类异常和父类异常捕获的关系
- C++异常(3) - 捕获基类与子类的异常
- C++异常(3) - 捕获基类与子类的异常
- java异常类子类和父类的关系
- 异常处理中子类和父类的捕获问题
- Java异常处理、异常处理使用的一些注意点(例如,基类和子类捕获的顺序问题)
- 基类和子类[笔记]
- .“在JAVA中,异常子类必须在它们任何父类之前使用,因为运用父类的catch语句将捕获该类型及其所有子类类型的异常。这样,后面运行子类的catch语句将永远不会到达。而且,Java中不能到达的代码是一个错误。”
- JavaScript中的try...catch和异常处理
- c++中的异常捕捉:try和catch
- JavaScript中的try...catch和异常处理
- 使用try和catch捕获异常
- c++中的异常捕捉try和catch
- java异常 try-catch 和throw
- 使用try catch抛出和捕获异常
- C++ primer 十七 异常和try、catch
- SAP的TAB分隔符(摘自SAP ABAP)
- 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)
- 经典培训故事
- 位运算符和位运算
- Java编程经验技巧 谨慎使用Date和Time类
- catch基类和子类异常
- 删除Ubuntu时的Grub error!
- google的“云计算“是商业炒作
- 经典C语言程序 转载
- 实例学MFC(3)--超简单C++实现网络下载器
- 职业经理人的自我管理
- 指针数组、数组指针、指针函数、函数指针的区别
- 大项目中项目经理的作用
- oracle中两种分组查询的方法