情報詳細Q:HALCON 10のHALCON/C++で例外を正しくcatchするためにどのような実装をすればよいでしょうか。以下のようなテストコードで動作させたのですが2つのcatchで例外を拾うことが出来ませんでした。 try { smooth_image(NULLのHALCONオブジェクト, &SmoothImg, "gauss", 7); } catch(Halcon::HException* ex) { } catch(...) { } A:HALCON 10以前ではInstallHHandler()により、予めthrowする関数を登録しておく必要があります。Programmer's Guideの「5.3 Error Handling」に記載がございますので、問題のプログラムでthrowする関数が登録されているかどうかご確認頂けますでしょうか。 既にInstallHHandlerを呼び出している場合、smooth_image呼び出し以前の時点で、メモリを破壊しているなどの可能性が考えられます。その場合、再現プログラムと再現手順を送付頂ければ、こちらで確認することも可能です。サポート宛にお問い合わせください。※例としてsmooth_imageを挙げていますが、これ以外のHALCONのオペレーターにおいても上記内容は有効です。※上記はHALCON10以前のコードまたはHALCON11~13ではレガシーコード:HALCON/C++ (legacy) と呼ばれるものを使用している場合にのみ適用されます。HALCON11以降の通常のHALCON/C++ではInstallHHandler()を使わずともHExceptionで例外をキャッチできます。添付ファイルタイトルHALCONプログラミング:C++ 例外を正しくcatchする方法URL 名000005490公開状況公開済み検証状況公開済み