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 {
}
}
Опитах се да компилирам някои файлове в нишка. Потребителският интерфейс избира повече от 200 файла за компилиране. По време на компилация възникна OutOfMemoryError
поради достатъчно памет в Eclipse. Искам да спра нишката и да покажа поле за съобщение и да изхвърля прозореца за компилиране в моето приложение. Написах кода по-долу, но той не работи. Мога ли да хвана изключението и да го обработя или има по-добро решение?
byte[] bytes = new byte[64*1024];
в блока try/catch. - person Peter Lawrey   schedule 26.09.2012