Je travaille sur un projet J2ME qui génère des threads de travail pour de nombreuses tâches telles que le téléchargement de contenu HTTP. La disposition des threads de base est similaire à celle de la plupart des applications Java. Il existe un fil d'interface utilisateur principal et des threads de travail générés pour effectuer des tâches en arrière-plan. Ma question est quelle est la meilleure façon de gérer les exceptions qui se produisent dans les threads de travail? En général, j'adhère à la logique de conception selon laquelle la plupart des exceptions devraient être percolées autant que possible. Lorsque j'écris des applications à un seul thread, il est courant pour moi de filtrer les exceptions jusqu'à la couche d'interface utilisateur, puis de les signaler dans une boîte de dialogue d'erreur à l'utilisateur. Existe-t-il une pratique similaire pour les applications multithread? La chose la plus intuitive pour moi est d'attraper des exceptions dans le Thread.run(), puis d'appeler invokeLater sur le thread d'interface utilisateur pour le signaler dans une boîte de dialogue. Le problème que je vois ici est que, en dehors du thread de travail qui s'éteint prématurément, cette approche ne notifie pas vraiment le thread de l'interface utilisateur qu'il y avait une erreur. Je ne vois pas de moyen clair de lancer une exception à travers les threads pour ainsi dire.Quelle est la meilleure approche pour gérer les exceptions lancées dans un thread séparé?
Merci, Andy
Merci Stuph. Cela a plus de sens. Une question rapide sur votre exemple: le bloc synchronisé (this) est-il vraiment nécessaire autour de l'affectation à _exception? J'avais l'impression que les affectations d'objets étaient atomiques. – Andy