2013-05-16 5 views
0

Désolé je suis nouveau au printemps et Java et cela peut être couvert de nombreuses fois, mais je voulais obtenir quelques conseils.Comment gérer les erreurs du service Web

Je crée une application Web Spring qui doit extraire des données utilisateur d'un service Web XML basé sur REST existant. Je vais créer un objet de domaine, un service et DAO qui utilise le modèle Spring REST pour appeler le service Web.

Dans le DAO j'allais créer une méthode comme ceci:

public User getUser(String userId) 

S'il y a un problème (par exemple, si le compte utilisateur est verrouillé ou a été supprimé), le retourne service Web une réponse 200 et met un code d'erreur dans la réponse XML. Ces erreurs doivent être affichées dans l'application et je devrai être capable d'identifier l'erreur afin que je puisse montrer un message d'erreur personnalisé à l'utilisateur. Quelle est la méthode recommandée pour gérer ces erreurs, dois-je:

  1. définir des exceptions (exécution) pour chacun des codes de réponse d'erreur et les ajouter à la signature de la méthode
  2. Utilisez une seule exception (par exemple UserException) et utiliser des messages différents.
  3. faire autre chose

Toute aide serait très appréciée.

Répondre

2

Vous souhaitez utiliser une exception différente pour chaque type d'erreur en étendant Extension. Si vous en avez plusieurs, essayez de les grouper en utilisant l'héritage des classes. Un exemple le rendrait plus simple. Supposons que vous ayez ces 2 types d'erreurs, compte supprimé et compte verrouillé, vous feriez:

class AccountException 
    extends Exception { 
} 

vous étendre l'extension de compte pour toutes les erreurs impliquant des problèmes de compte, par exemple:

class AccountLockedException 
    extends AccountException { 
} 

et

class AccountDeletedException 
    extends AccountException { 
} 

etc ... De cette façon, vous le rendre limpide et ne pas avoir à regarder à travers toutes vos exceptions. Pas sûr que je sois assez clair, c'est ma première réponse ici. GL!

0

Je créer une seule classe d'exception pour une catégorie. Par exemple, pour toutes les exceptions liées à l'utilisateur, vous pouvez créer quelque chose comme ci-dessous: De cette façon, il sera propre à attraper une exception et vérifier le code d'erreur pour trouver ce qui a causé l'exception.

public class MyException extends Exception{ 
     public static final int ERR_USER_NOT_FOUND = 101; 
     public static final int ERR_DB_ACCESS_ERR = 500; 

     private int errorCode; 
     public MyException(int errCode){ 
      this.errorCode = errCode; 
     } 

     public int getErrorCode() { 
      return errorCode; 
     } 
    } 
+0

Merci les gars, je vais essayer les deux. Je voulais juste vérifier est-il un autre moyen de le faire sans utiliser les exceptions Java? – Swordfish

Questions connexes