bonjour,


j'ai une application qui peut dans certains cas provoquer une erreur de type "java.lang.OutOfMemoryError: Java heap space". Je voudrais gérer convenablement cette erreur : dans mon cas il s'agirait de fermer simplement l'application.

Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
try
{
    // mon code qui provoque l'erreur
 
}
catch (OutOfMemoryError ex)
{
	JOptionPane.showMessageDialog(this, ex.getMessage(), "Critical Error.", JOptionPane.ERROR_MESSAGE);
	Logger.getLogger(MonProjet.class.getName()).log(Level.SEVERE, null, ex);
	System.gc();
	System.exit(-1);
}
catch (Error ex)
{
	JOptionPane.showMessageDialog(this, ex.getMessage(), "Critical Error.", JOptionPane.ERROR_MESSAGE);
	Logger.getLogger(MonProjet.class.getName()).log(Level.SEVERE, null, ex);
	System.gc();
	System.exit(-1);
}
catch(Exception ex)
{
	JOptionPane.showMessageDialog(this, ex.getMessage(), "Critical Error.", JOptionPane.ERROR_MESSAGE);
	Logger.getLogger(MonProjet.class.getName()).log(Level.SEVERE, null, ex);
	System.gc();
	System.exit(-1);
}

Ce code fonctionne très bien mais toutefois, je voudrais savoir si ma manière dé gérer cette erreur est "propre", à savoir :
- j'appelle le carbage collector (pour détruire les objets et vider la mémoire ) ;
- je fais un exit(-1) : je ne devrais pas plutôt faire un dispose()


pour vos conseils.