尝试在Try中捕获检查多个对象
Try-catch checking multiple objects in try
我想知道像这样的代码在抛出异常后是否总是会中断而不继续,这样代码就不会继续到第二个temp.dodaj(b).
Avto *a = new Avto("lambo",4);
Avto *b = new Avto("BMW",3);
Avto *c = new Avto("lexus",6);
SeznamAvtov temp;
try {
temp.dodaj(a);
temp.dodaj(b);
temp.dodaj(c); // here the exception will be thrown
temp.dodaj(b);
} catch(PokvarjenAvto &e) {
e.error();
}
temp.pisi();
我的第二个问题是,抛出包含错误数据的对象可以吗;带有const char*what()方法的e必须是?
谢谢你的回答
我想知道像这样的代码在抛出异常后是否总是会中断而不继续,这样代码就不会继续到第二个temp.dodaj(b).
是的,它将按照您描述的方式运行。
我的第二个问题是,抛出包含错误数据的对象可以吗;带有const char*what()方法的e必须是?
不,你可以抛出任何你想要的类型。但通常的约定是,异常类型应该从std::exception
派生并重写const char* what()
函数。
相关文章:
- 如何检查对象有效
- 什么更有效率?在重载函数中或通过在基类函数中检查对象类型来实现
- Python C API:如何检查对象是否是类型的实例
- 在一个作用域中推送五个对象指针,然后检查对象的布尔值是否为 false,会给出错误
- 检查对象是否是具有模板的类的实例
- 如何检查对象是否是基类类型
- STLS STD :: MAP和STD :: vector;在地图中检查对象类型
- C++是否有现有的方法来检查对象是否是派生类型对象
- 在检查对象类型的情况确实总是符合不良设计的迹象
- 检查对象的类型是否是从特定类继承的
- 如何在C++中检查对象的类?
- 如何检查对象数组是否为空/空
- C++检查对象是否是给定超类的后代
- 如何检查对象属性更新是否存在 std::map 键,否则插入一个新键?
- 检查对象之间的冲突时,列表迭代器不可递增
- (C++)用于检查对象是否在向量/数组/列表/.中的模板
- 映射/集合迭代器不兼容-检查对象是否在映射中
- 崩溃后在gdb回溯中检查C++对象
- 当函数重新调整通过引用传递时检查对象是否存在
- 如何检查对象是否在数组中