Amélioration de Conversion.java (version 2)

Remarque : une façon d'éviter le return -1 de la méthode rechercheIndiceDevise(String devise), sans avoir de duplication de code, est de remplacer les méthodes rechercheIndiceDevise(String devise), indiceDevise (String devise) et boolean deviseTraitee (String devise) par le code suivant, utilisant une variable supplémentaire.

private int indiceDevise;

private static int indiceDevise (String devise) {
    if (! deviseTraitee(devise))
        throw new Error("Devise " + devise + " inconnue");
    return indiceDevise;
}

public static boolean deviseTraitee(String devise) {
    for (indiceDevise = 0; indiceDevise < devises.length; indiceDevise++)
        if (devises[i].equals(devise))
                break;
    return indiceDevise < devises.length;
}

L'instruction throw new Error(<message>) a pour effet d'arrêter l'exécution du programme en affichant le message passé en paramètre. C'est un peu l'équivalent du assert() du langage C.