Ich arbeite an einer einfachen Anwendung und jetzt bin ich nicht ganz sicher, wie mit Fehlern umzugehen ist, die während der Ausführung der Anwendung aufgetreten sind. Ich mache mir besonders Sorgen um OutOfMemoryError
. Beispiel:Abnormale Beendigung im Catch-Block?
try{
while(true){
//do some job
}
} catch (Exception e){
System.out.println("Exception occured");
} catch (Throwable t){
//log entry of abnormal termination
System.exit(1);
} finally {
//Terminate application normally
}
Ist es ein richtiger Weg, um mit einer solchen Situation umzugehen? Ich meine, zu versuchen, Anwendung normalerweise zu beenden, blockieren Sie schließlich und töten Sie einfach JVM in catch(Throwable t)
.
Das Problem ist finally
wird nie ausgeführt werden, wenn zum Beispiel OutOfMemoryError
geworfen wurde.
Nun, die Sache ist, ich möchte einen Protokolleintrag erstellen. Das ist der Hauptgrund, warum ich 'Throwable' erwische. – Alupkers
Vielleicht lohnt sich, wenn Throwable instanceof OutOfMemoryException es abbricht, andernfalls loggen Sie es einfach ein. –