ant-103 a écrit :
Euh... je vais encore faire chie tout le monde avec une question à deux balles mais je tente quand même car finalement espérer qu'il y'ait solution à ce problème c un peu comme croire en dieu...
Est ce que je peux faire en sorte que le "system.exit()" soit désactivé? Exemple je lance une méthode dans un package et un crétin sans nom (et sans raison) a foutu un system.exit(0) à la fin de sa méthode!? mais moi après avoir fait appel à cette méthode je voudrais continuer mon prog... qq à une idée autre que de modifier le package (made in IBM)
|
La solution.
L'idée c'est de catcher l'événement, et de remonter une exception. (Même 8 ans après ça peut servir )
Code :
- public class Test {
- public static void main(String args[]) {
-
- //Catcher les system.exit
- final SecurityManager securityManager = new SecurityManager() {
- public void checkPermission(java.security.Permission permission) {
- if (permission.getName().startsWith("exitVM" )) {
- throw new SecurityException("System.exit attempted and blocked." );
- }
- }
- };
- System.setSecurityManager(securityManager);
-
-
- try {
- System.out.println("Demande de system exit" );
- System.exit(0);
- } catch (SecurityException e) {
- System.out.println("System exit detecté !" );
- }
- System.out.println("System exit détourné !" );
-
- }
- }
|
Message édité par Jackeror le 14-06-2010 à 17:12:39