Compilefile.this.compileThread = new Thread() {
@Override
public void run() {
try {
synchronized (this) {
Application.getDBHandler().setAutoCommit(false);
MIBParserUtils.getDefaultMibsMap();
compileSelectedFiles();
Application.getDBHandler().CommitTrans();
Application.getDBHandler().setAutoCommit(true);
}
}
catch(OutOfMemoryError exp) {
JOptionPane.showMessageDialog(null, "Compilation Stopped.. Insufficient Memory!!!");
CompileMib.this.compileThread.interrupt();
System.gc();
dispose();
NmsLogger.writeDebugLog(exp);
}
finally {
}
}
スレッド内でいくつかのファイルをコンパイルしようとしました。UI は、コンパイルする 200 を超えるファイルを選択します。コンパイル中OutOfMemoryError
に、Eclipse のメモリ不足が原因でエラーが発生しました。スレッドを停止してメッセージ ボックスを表示し、アプリケーションでコンパイル ウィンドウを破棄したいと考えています。以下のコードを書きましたが、うまくいきません。例外をキャッチして処理できますか、それともより良い解決策がありますか?