0

深刻な問題があります。私たちのアプリケーションには、Eclipse RCP クライアントの外部 ole プラグインがプラグインされています。このプラグインは、実行中に何らかのエラーを引き起こし、クライアント全体を強制終了します。

問題を修正できないため、少なくともクライアントがクラッシュしないように、そのエラーをキャッチしたいと考えています。より正確には、JVM が致命的なエラーを引き起こしたため、クライアントがクラッシュします。JVM のクラッシュを回避するために、これらのエラーを抑制する可能性はありますか?

これはクライアントにプラグインを組み込むコードですが、このようなエラー キャッチを実現する方法を知っている人はいますか?

    // create OLE frame and site (XMAX control).
    clatFrame = new OleFrame(parent, SWT.NONE);
    clatUtil = null;
    try {
        clatSite = new OleControlSite(clatFrame, SWT.NONE,
                "Congree.XMax.Control");
        clatSite.doVerb(OLE.OLEIVERB_INPLACEACTIVATE);
        clatUtil = new OleUtil(clatSite);

        // setzt die Dialogsprache
        String dialogLanguage = Platform.getNL();
        // Umgehung für Bug-20760
        if (LOCALE_DE.equalsIgnoreCase(dialogLanguage)) {
            // ClatIn Format 'de-DE'
            dialogLanguage = dialogLanguage + "-DE"; //$NON-NLS-1$
        } else {
            dialogLanguage = dialogLanguage.replace("_", "-");
        }

        clatUtil.invokeMethod(null, "SetGuiLanguage", true, dialogLanguage);

        GridDataFactory.fillDefaults().hint(SWT.DEFAULT, 25).grab(true,
                false).align(SWT.FILL, SWT.TOP).applyTo(clatFrame);
    } catch (SWTException e) {
        clatFrame.dispose();
        LOG.warn("OLE control (CLAT) not installed");
    }

ログ

http://www.file-upload.net/download-8284055/jvm_errorlog.log.html

4

1 に答える 1

1

SWTException の代わりに Throwable のキャッチを試みることができます。それでも問題が解決しない場合は、OLE/COM 自動化用の jacob などの別のライブラリを試すことができます。 、したがって、別のライブラリが役立つ場合があります。

于 2013-11-12T15:17:58.617 に答える