next up previous
Next: Gérer ses propres exceptions Up: Les exceptions Previous: Les exceptions

Un exemple


import java.util.*;

public class SansException {

    private static final int max = 5;
    private static Random r = new Random();

    public void division (int a, int b) {
        System.out.println("a :"+a+" b :"+b+" a/b :"+a/b);
    }

    public static void main(String args[]){
        SansException se = new SansException();
        System.out.println("Debut");
        for(int i = 0; i < 10; i++)
            se.division(r.nextInt(max),r.nextInt(max));
        System.out.println("Fin");
    }
	
}

Ce programme peut produire la sortie suivante à l'écran :

Debut
a :1 b :3 a/b :0
a :1 b :2 a/b :0
a :1 b :4 a/b :0
a :3 b :4 a/b :0
a :0 b :4 a/b :0
a :3 b :3 a/b :1
a :3 b :1 a/b :3
java.lang.ArithmeticException
	at SansException.division(SansException.java:9)
	at SansException.main(SansException.java:5)

La première division par zéro arrète l'exécution. Dans la nouvelle version, le programme termine normalement.


import java.util.*;

public class AvecException {

    private static final int max = 5;
    private static Random r = new Random();

    public void division (int a, int b) {
        try {
            System.out.println("a :"+a+" b :"+b+" a/b :"+a/b);
        }
        catch (java.lang.ArithmeticException e){
            System.out.println("a :"+a+" b :"+b+" a/b : impossible");
        }	 
    }

    public static void main(String args[]){
        AvecException ae = new AvecException();
        System.out.println("Debut");
        for(int i = 0; i < 10; i++)
            ae.division(r.nextInt(max),r.nextInt(max));
        System.out.println("Fin");
    }
	
}

Ce programme peut produire la sortie suivante à l'écran :

Debut
a :2 b :2 a/b :1
a :2 b :4 a/b :0
a :0 b :4 a/b :0
a :4 b :0 a/b : impossible
a :3 b :3 a/b :1
a :2 b :0 a/b : impossible
a :0 b :3 a/b :0
a :4 b :1 a/b :4
a :0 b :4 a/b :0
a :3 b :2 a/b :1
Fin



Alain GRIFFAULT
2001-09-27