gpt4 book ai didi

c++ - 你如何调用一个返回引用或抛出异常的函数而无需体操?

转载 作者:太空狗 更新时间:2023-10-29 21:21:41 25 4
gpt4 key购买 nike

假设您看到以下代码:

blah & Foo::foo() { 
if (_x) { return _blah;}
throw exception("blah error");
}

据我所知,调用它的唯一方法是在 try/catch block 中

try {
blah &b=_foo.foo();
catch(...) {}

现在 b 超出范围,使得错误处理有些困难。可以将其分配给一个指针,然后将指针重新分配给下面的引用,但这似乎相当困难。

我不记得关于避免创建返回引用或抛出异常的函数的明确建议,但是在处理这些类型的接口(interface)时有没有标准的方法来解决这个问题?

最佳答案

你这边好像有误解。如果上面的函数抛出异常,则它不会完成并且它不会产生引用。 try/catch block 中的引用不仅不可访问,而且甚至从未存在

抛出异常的函数不会返回。

关于c++ - 你如何调用一个返回引用或抛出异常的函数而无需体操?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22030475/

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