从可能引发异常的函数返回std :: string

时间:2012-12-02 14:38:28

标签: c++ string exception

我在Java中做了很多...

String something = "A default value.";
try {
    something = this.aFunctionThatMightThrowAnException();
} catch (Exception ignore) { }
this.useTheString(something);

现在我正试图找到std::string的等效方法。这就是我的......

std::string something("A defualt value.");
try {
    something = this->aFunctionThatMightThrowAnException();
} catch (const std::exception& ignore) { }
this->useTheString(something);

为了完整性,aFunctionThatMightThrowAnException()可能是这样的......

std::string MyClass::aFunctionThatMightThrowAnException() {
    /* Some code that might throw an std::exception. */
    std::string aString("Not the default.");
    return aString;
}

我有三个关于C ++版本的问题:

  • 这是解决这类问题的方法吗?或者将something传递给aFunction作为参考更为常见?
  • something的作业是aFunction...安全返回吗?具体是最初分配给"A default value."的内存是否已发布?
  • 在抛出异常的情况下,是否有我无法看到的副作用?

1 个答案:

答案 0 :(得分:6)

  

这是解决这类问题的方法吗?

  

或者将某些内容作为参考传递给aFunction更常见吗?

没有

  

我的任务是从函数返回的东西......安全吗?具体是最初分配给"默认值的内存。"释放?

  

在抛出异常的情况下,是否会出现副作用?

没有