次のコードを実行します。constとして例外をスローする&
void DoThrow(const std::exception& e)
{
throw e;
}
int main(int nArgs, char* args[])
{
std::exception e;
try
{
DoThrow(e);
}
catch(std::exception& e)
{
// const exception ref is caught
}
return 0;
}
私は自分のプロジェクトでconstの正しさを改造しようとしていて、不注意に上記の状況を作り出しました。デベロッパースタジオでは、キャッチブロックは例外&としてスローされますが、非const &としてキャッチされますが、例外をキャッチします。
質問 - すべきでしょうか? :-)
は一言で言えば、あなたは同じオブジェクト 'e'をキャッチしないでください。 – spraff
それは1つの歓声です! (そして、これは、あなたが '投げる'ではなく '投げる'で再投げるように気を付ける必要があることを意味する) –