2017-03-14 8 views
1

私は非常に古いC++コードを維持しようとするJava開発者です(まだvs2010をコンパイルする必要があります)。例外をキャッチしてC++で再スローする

私は自宅で物事をテストする能力を持たない例外を理解しようとしていますので、この質問がばかげているとごめんなさい。

低レベルの関数で例外をスローし、一番上にキャッチするか、あらゆるレベルでキャッチして再スローする必要がありますか?

これは、ネイティブコードの作成、管理コードの呼び出し、C#の呼び出し、my java restリソースの呼び出しという事実によって複雑です。そこにはレベルがあり、私は絶対にキャッチしてから再スローする必要があります。

ありがとうございます。

編集:Jesperが前半に回答したので、私のネイティブコードがシステム::例外を処理できるか?

+0

"テスト用の機能がない"もちろんhttp://ideone.com/nAwbt2をテストすることができます。 – bolov

+4

_ "ABI /言語の境界を越えたときには、そこにレベルがあります。絶対にキャッチして変換してから再スローする必要があります。 –

+4

例外を投げるときは十分注意してください。スローサイトとキャッチサイトの間のコードが例外安全性(RAIIなど)を念頭に置いて書かれていない限り、あなたは非常に簡単にプログラムの状態を台無しにすることができます。それはJavaほど簡単ではありません。 – StoryTeller

答えて

6

"低レベルの関数で例外をスローし、一番上にキャッチすることはできますか?"

「すべてのレベルでキャッチして再投げられる必要がありますか?」 - いいえ。

関連する問題