2010-01-21 5 views

Répondre

2

MS SharePoint lance des exceptions comme ceci:

.... 
Throw New SPException(SPResource.GetString("CannotChangeRootwebPerm", New Object() { Me.Url })) 
.... 

qui semble raisonnable. - vous avez une fonction d'utilité qui sait comment trouver le message requis pour les paramètres régionaux actuels; vous attribuez à chaque chaîne d'exception un nom logique & lisible.

+0

+1 pour plus de simplicité. Simple est bon. – Walter

0

I'D préfèrent toujours les exceptions au lieu de valeurs de retour arbitraires. Une façon de créer des exceptions multilinguar est de créer une classe de base qui se charge de la traduction, i.e. .:

class TranslatedException : Exception { 
    private string translationKey = "base_exception"; 
    public string ToString() { 
     return YourTranslationClass.GetTranslation(this.translationKey); 
    } 
} 

D'autres exceptions ont juste besoin d'hériter de cette classe et changer le translationKey en conséquence.

+0

Ne serait pas mieux si d'autres exceptions héritent encore de la classe System.Exception? –

+1

Si TranslatedException hérite de l'exception de base (dépend du langage de programmation non spécifié par l'OP), les autres exceptions peuvent hériter de TranslatedException sans casser le code catch (Exception ex). – dbemerlin

+0

Je peux obtenir la traduction respective du fichier de ressources. mais je veux juste savoir si j'utilise des exceptions d'utilisation des codes d'erreur. – Mohsan