Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

6.2.5. Personnalisation des exceptions internationalisées

6.2.5.1. Ajouter les ids et les codes de projets aux messages d'exceptions

La procédure suivante montre les étapes requises pour ajouter des ID de message et des codes de projets aux messages d'exception internationalisés créés en utilisant les JBoss Logging Tools.
Les ID de messages et les codes de projet sont des identificateurs uniques qui sont ajoutés à chaque message affiché par les exceptions internationalisées. Ces codes d'identification permettent de créer une référence pour tous les messages d'exception d'une application pour qu'une personne puisse rechercher le sens d'un message d'exception écrit dans une langue qu'elle ne comprend pas.

Conidtions préalables

  1. Vous devrez déjà avoir un projet avec des exceptions internationalisées. Voir Section 6.2.2.3, « Créer des exceptions personnalisées ».
  2. Vous devrez connaître le code de projet que vous utilisez. Vous pouvez utiliser un code de projet simple, ou en définir un différent pour chaque interface.

Procédure 6.10. Ajouter les ids et les codes de projets aux messages d'exceptions

  1. Indiquer un code de projet

    Indiquer le code de projet en utilisant l'attribut projectCode de l'annotation @MessageBundle attachée à une interface de lot d'exceptions. Tous les messages qui sont définis dans l'interface utiliseront ce code de projet.
    @MessageBundle(projectCode="ACCTS")
    interface ExceptionBundle
    {
       ExceptionBundle EXCEPTIONS = Messages.getBundle(ExceptionBundle.class);
    }
  2. Indiquer les ID de messages

    Indiquer l'id de message pour chaque exception en utilisant l'attribut id de l'annotation @Message associée à la méthode qui définit l'exception.
    @Message(id=143, value = "The config file could not be opened.")
    IOException configFileAccessError();

Important

Un message qui comprend à la fois un code de projet et un ID de message les affiche à la suite du message. Si un message ne les possède pas, ils ne seront pas affichés.

Exemple 6.3. Créer des exceptions internationalisées

Cette interface de lot d'exceptions possède le code de projet d'ACCTS, avec une simple méthode d'exception ayant comme Id 143.
@MessageBundle(projectCode="ACCTS")
interface ExceptionBundle
{
    ExceptionBundle EXCEPTIONS = Messages.getBundle(ExceptionBundle.class);

    @Message(id=143, value = "The config file could not be opened.")
    IOException configFileAccessError();
}
L'objet d'exception peut être obtenu et lancé grâce au code suivant.
throw ExceptionBundle.EXCEPTIONS.configFileAccessError();
Cela aurait pour effet d'afficher un message d'exception qui ressemble à ce qui suit :
Exception in thread "main" java.io.IOException: ACCTS000143: The config file could not be opened.
at com.company.accounts.Main.openCustomProperties(Main.java:78)
at com.company.accounts.Main.go(Main.java:53)
at com.company.accounts.Main.main(Main.java:43)