私はこれを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++バージョンについて3つの質問があります。
- これは、この種の問題に対して受け入れられているアプローチですか?
something
または、を参照として渡す方が一般的aFunction
ですか? - 安全
something
からの復帰としての私の割り当てはありますか?aFunction...
具体的には、最初に割り当てられていたメモリが"A default value."
解放されますか? - 例外がスローされた場合に表示されない副作用はありますか?