gpt4 book ai didi

c++ - try-catch 在 try 中检查多个对象

转载 作者:行者123 更新时间:2023-11-30 05:26:24 29 4
gpt4 key购买 nike

我想知道这样的代码是否会在抛出异常后总是中断而不继续运行,因此代码不会继续执行第二个 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() 方法抛出异常?

谢谢你的回答

最佳答案

I am wondering if a code like this will always break and not go ahead after throwing an exception, so the code wont proceed to second temp.dodaj(b).

是的,它会像您描述的那样运行。

My second question is, is it ok to throw objects containing data about error or is an exception &e with const char* what() method a must?

不,你可以抛出任何你想要的类型。但常见的约定是异常类型应派生自 std::exception 并覆盖 const char* what() 函数。

关于c++ - try-catch 在 try 中检查多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37801696/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com