2013-03-14 3 views
0

Je veux comprendre la propagation d'exception dans Java au niveau du thread. J'ai cru comprendre que lorsqu'un code lève une exception et que la méthode ne gère pas cette exception, elle est stockée dans la pile de ce thread et jvm ne cesse de sortir les appels de méthode de la pile si l'exception n'est pas gérée. Cette méthode s'appliquera aux exceptions Checked et non cochées. S'il vous plait corrigez moi si je me trompe. Avec l'explication ci-dessus je ne suis pas capable de comprendre comment les exceptions dans le bloc statique sont traitées car elles seront appelées pendant le temps de chargement de la classe.Comment les exceptions sont-elles propagées?

Des idées à ce sujet?

+2

Veuillez vérifier ce fil http://stackoverflow.com/questions/2070293/exception-in-static-initialization-block –

Répondre

1

Le code intérieur du bloc statique est également exécutée dans un thread (même si elle est en effet appelé à moment de l'initialisation de la classe) et ainsi la même stratégie applique aux exceptions non vérifiées lancées à partir d'un bloc statique.

Notez que vous obtiendrez une erreur de compilation si votre code renvoie une exception vérifiée d'un bloc statique.

1

Java strictement et définit précisément le moment où une classe est initialisés (par opposition à chargé, BTW!). Il est toujours déclenché par du code Java, donc la ligne particulière de code Java qui déclenche la classe init recevra l'exception. Il n'y a pas de magie, pas de cas particulier, et ça arrive toujours à l'exécution, comme toutes les autres exceptions.

Questions connexes