je la déclaration d'interface suivante:Signature de méthode déclarée comme throws Exception; mis en œuvre en jette une sous-classe d'exception
public interface SomeInterface {
void someMethod() throws Exception;
}
J'utilise un tiers pour générer une implémentation de cette classe (JavaCC - pour les curieux)
Les regards de classe générés naïvement comme ceci:
public class SomeClass implements SomeInterface {
public void someMethod() throws SomeException {
// Does something
}
}
Où SomeException
est bien sûr une sous-classe de Exception
.
(Pas) de façon surprenante le code ne compile pas.
Quelqu'un a-t-il des commentaires à ce sujet?
Merci!
EDIT:
rebaptisé la méthode SomeMethod()
-someMethod()
.
Il avait été une faute de frappe de la mienne ... (désolé)
EDIT # 2:
Désolé tout - énorme erreur de la mienne. L'écriture de cet exemple m'a forcé à supprimer le code. Je n'avais pas remarqué que l'erreur était ailleurs et pas avec la signature.
Cest la « magie » de la compilation d'exécution et le chargement de classe personnalisée ...
"n'importe quelle entrée?" n'est pas une question avec une réponse définitive. –
Le code affiché sera compilé. Pouvez-vous reproduire le problème avec cet exemple de code? – Yishai
Une énorme erreur à moi. Comme j'ai dû supprimer le code pour cet exemple, je n'ai pas remarqué que le problème avait été ailleurs ... Vraiment désolé pour ça !!!! – Yaneeve