[Exception] Comment catcher une runtime exception ?
Bonjour,
Je sais qu'il y a une astuce mais elle a malheureusement disparue du forum :(
Adiguba l'avait trouve .. d'ailleurs si il s'en souvient ..
Voila mon probleme est un OutOfMemory error que je veux catcher dans une GUI .. j'ai mis des catchs dans tout les coins mais pas moyen .. ca doit etre dans une partie Swing ..
Si qqun sait comment faire .. pour info meme un try catch englobant tout le main ne sert a rien ..
Bulbo :wink:
Re: [Swing][Exception] Comment catcher une runtime exception
Salut,
Citation:
Envoyé par bulbo
Adiguba l'avait trouve .. d'ailleurs si il s'en souvient ..
Toi tu as de la chance je m'en souvient :lol:
Citation:
Envoyé par herve91
OutOfMemory n'est pas une Exception, mais une Error (une des deux classes héritées de Throwable avec Exception).
Exact.
Mais en fait bulbo parle d'intercepter toutes les éléments Throwable qui généralement ne neccessite pas un bloc try/catch (comme les Error, les RuntimeException...)
Donc il suffisait de positionner la propriété systeme sun.awt.exception.handler soit avec l'option -D de java soit avec un System.setProperty()...
Cette propriété doit contenir le nom complet d'une classe contenant une méthode :
Code:
public void handle (Throwable t);
A chaque exception non intercepté, une nouvelle instance de cette classe est crée (il faut un constructeur vide) et la méthode handle() est appellée...
Par contre je me souviens que cette solution n'était pas garantis (ce n'est pas du tout standard) et il était indiqué que cette "fonctionnalité" serait supprimé dans le future...
Et apparemment cela ne marche pas avec Java 1.5...
Toutefois si tu utilises Java 1.5 tu peux utiliser les UncaughtExceptionHandler que tu utilises avec la méthode Thread.setDefaultUncaughtExceptionHandler() (voir avec setUncaughtExceptionHandler() si tu veux le faire thread par thread...)
Cette solution est nettement plus propre mais malheureusement elle neccessite une JVM 1.5...
A toi de voir ;)
a++