Est-il possible de lancer une exception java par la méthode d'appel d'une classe de base qui ne jette pas des exceptions?

StackOverflow https://stackoverflow.com/questions/3704457

  •  02-10-2019
  •  | 
  •  

Question

Cela peut être une question Java ridicule gestion des exceptions, mais j'ai un acteur de l'interface utilisateur (une activité Android) qui demande des services de ma sous-classe de ContentProvider. La sous-classe veut jeter quelques exceptions lorsque la carte SD est pleine, carte SD est manquante, le réseau i / o errros, etc. Cependant, quand je code le CP-sous-classe de jeter mes exceptions, les offres du compilateur d'ajouter les exceptions à la classe de CP. De toute évidence, je ne veux pas modifier la classe de base, mais je veux l'interface utilisateur pour attraper les sous-classe exceptions.

sens? Est-ce possible? Sinon, est-il un meilleur modèle pour ma sous-classe de service pour obtenir le dos d'objet throwable à l'interface utilisateur?

Était-ce utile?

La solution

Vous ne devez déclarer et attraper « vérifié exceptions ». Vous n'êtes pas obligé de déclarer ou de capture RuntimeExceptions explicitement. Ainsi, vous pouvez jeter un RuntimeException et attraper whereever vous aimez dans la hiérarchie.

Autres conseils

Vous pouvez jeter Unchecked exceptions sans avoir à les ajouter au prototype de la méthode.

Une exception non contrôlée est une exception qui hérite de RuntimeException. Est-ce que tu voulais faire?

Vous pourriez jeter les instances de sous-classes de RuntimeException, qui ne sont pas vérifiées par le compilateur.

Cependant, ceci étant dit, la spécification d'exception vide fait partie du contrat des méthodes de la classe de base. Il est souhaitable que les sous-classes pour satisfaire le contrat, de sorte que les instances de sous-classe peuvent être utilisés dans tout code qui utilise le type de superclasse. (Ceci est connu comme le Liskov principe de substitution ).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top