49 votes

Pourquoi ma classe d'exception doit-elle être sérialisée ?

Lorsque vous étendez une classe avec la classe Exception (pour créer une nouvelle exception), vous recevez un avertissement indiquant que vous avez un serialVersionUID . Je sais que serialVersionUID joue un rôle important lors de la sérialisation et de la désérialisation, mais quand mon exception doit-elle être sérialisée ? Quelqu'un peut-il me donner un cas pratique dans lequel je souhaite que ma classe d'exception personnalisée ait une sérialisation et une désérialisation ?

14voto

JB Nizet Points 250258

Si votre exception personnalisée est déjà utilisée dans une application distribuée (à l'aide de RMI, Spring http-invoker, peu importe) et peut être lancée à partir d'une méthode serveur invoquée à partir d'un client distant, l'exception devra être sérialisée pour traverser le fil et allez chez le client.

5voto

Miserable Variable Points 17515

Vos seules options sont soit de définir serialVersionUID pour chaque type de Exception vous définissez (l'IDE peut le générer pour vous) ou de supprimer l'avertissement.

Vous pouvez trouver ma question précédente explicite serialVersionUID considérée comme nuisible ? pertinent.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X