2011-11-11 6 views
1

Quel type de java.lang.Error peut être lancé pendant la compilation?
Je connais une erreur: ClassFormatError. Quelles sont les autres erreurs?
J'écris une application qui agit comme un serveur. Le serveur peut compiler un programme Java. Pendant la compilation, je ne veux pas l'annuler avec une erreur, en assurant la compilation. J'ai pris les mesures necessarry qui peuvent empêcher une erreur de compilation.
Je ne suis pas sûr avec java.lang.Error, je peux attraper objet Throwable et l'empêcher, mais j'ai besoin de savoir quels sont les objets d'erreur qui peuvent être jetés au cours de la compilation.Quel type de java.lang.Error peut être lancé pendant la compilation?

+1

Aucune. Les exceptions, erreurs, jetables ne sont pas lancées au moment de la compilation. Votre question n'a pas de sens. – EJP

+1

Il me semble me souvenir d'un cas de génériques avec des types génériques ou quelque chose causant une récursion infinie dans le compilateur (ce qui provoquerait un StackOverflowError ou un OutOfMemoryError, selon que le tas ou l'espace de pile était épuisé en premier). Donc, une erreur de compilation est possible, mais cela nécessite un compilateur cassé. :) – cHao

+0

@EJP classFormaError peut être levé au moment de la compilation lorsque la longueur du code de la méthode atteint la limite spécifiée – anish

Répondre

4

Les erreurs lancées au moment de la compilation (dans javac) se produisent lorsque le compilateur a une erreur interne. Vous pouvez fournir un code java valide et le compilateur peut mourir. Une erreur courante que je vois est OutOfMemoryError quand je compile une grande base de code mais mon IDE n'a pas donné assez de mémoire au compilateur (la valeur par défaut dans mon IDE est 128 Mo)

ClassFormatError peut se produire lorsque la compilation essaie de charger une compilation fichier de classe qui est corrompu.

Vous n'avez pas besoin de connaître toutes les erreurs lancées, vous pouvez simplement attraper Throwable. Ils ne devraient être le résultat d'un événement très inhabituel qui sont susceptibles d'être irrécupérables. Tout ce que vous pouvez faire est d'enregistrer l'erreur et d'empêcher le fil de mourir.

Questions connexes