2010-08-25 44 views
2
try { 
    this.interrupt(); 
} catch (IllegalThreadStateException e) { 
    e.printStackTrace(); 
} 

J'ai découvert qu'un IllegalThreadStateException a été lancé en mettant une instruction d'impression, aucune trace de pile n'a été imprimée. J'ai essayé de rechercher des threads existants à propos de Thread.interrupt() et IllegalThreadStateException, mais je n'en ai pas tiré grand chose. J'utilise CDLC 1.1, si ça aide. Merci beaucoup!!Pourquoi ai-je reçu IllegalThreadStateException après avoir appelé this.interrupt()?

Répondre

1

CLDC 1.1 est censé prendre en charge interrupt(), mais pas CLDC 1.0. Peut-être que votre implémentation particulière n'a pas eu envie d'ajouter ce support, et le simule en lançant une exception d'exécution.

+0

mais le mien est sous CLDC 1.1 pour sûr. pas d'erreur là-bas. – derrdji

0

Si aucune trace de pile n'est imprimée, il semble qu'une erreur se produit (et soit gérée) ailleurs. Pouvez-vous passer en revue le code dans un débogueur et voir si cette interruption déclenche un autre thread pour avoir un problème? Il devrait se produire avec le processus d'exécution interrupt().

Dans notre IDE, je mettrais un point d'arrêt sur cette ligne, appuyez sur F5 pour étape dans l'appel de la méthode, puis continuer marcher à l'intérieur jusqu'à ce que je trouve le problème. En cours de route, si j'arrive à un point où il n'y a pas de code source, je téléchargerais le fichier jar source correspondant et le pointerai vers le débogueur (ce qui semble impliqué mais ne prend que 2 minutes).

espoir qui aide d'une certaine façon,

-gMale