例外を2度スローするとランタイムエラー

[戻る]
roccy 2004/12/15(水) 01:49:44
こんにちは。
例外をスローしようとしてランタイムエラーが
起きてしまいます。原因がわからないので、
同じような経験のある方、
原因を知っている

【現象】
try〜catchで囲まれたスコープでオブジェクトAを生成する。
次にこのスコープ内で例外をスローする。
すると、オブジェクトAのデストラクタが呼ばれる。
デストラクタで例外をスローしようとすると、
ランタイムエラーが出ます。

A.dllの中からB.dllをコールして、
B.dllの中に上記のtry〜catchの処理があり、
この中でスローする例外の型は、このB.dll内の
catchでは、捕捉できない型になっており、
A.dll内のcatchで捕捉できるようになっています。
上記の現象のように例外を2度スローしなければ、
何も問題なく例外を捕捉できます。

roccy 2004/12/15(水) 01:51:59
ちなみに開発環境は、
VC++6.0
Windows2000
です。

tetrapod 2004/12/15(水) 08:08:22
デストラクタ中で例外を投げることは絶対のタブー事項です。
C++ の基礎です。書籍を読むなりWEB検索するなりして理解してください。
どう対処すればよいかはあなたのプログラム次第でしょう。

roccy 2004/12/16(木) 00:31:36
[[解決]]
回答、ありがとうございました。
こんな基礎知識も知らなかったなんて、
一から勉強し直しですね。
ありがとうございました。

古いスレッドには追加発言できません。