Je crée un code multi-threadé et j'ai créé une classe JobDisPatcher qui crée des threads. Je veux que cet objet traite toutes les exceptions non gérées dans les threads ouvrier, et j'utilise donc
Thread.setUncaughtExceptionHandler(this);
4 Réponses :
Il suffit de lancer une exception.
E.g.: p> complet: p>
Eclipse ne me laissera pas compiler lorsque je le fais - il insiste sur le fait que je m'entourdis d'essayer d'essayer / attraper. Savez-vous comment changer ce comportement?
Cela devrait compiler. Ressemble à un contrôle supplémentaire spécifique à l'éclipse.
Eclipse peut se plaindre si vous avez un autre code dans une méthode après le lancement de l'exception, faites-en la seule / dernière ligne de la méthode.
@Martin, vous devriez être capable de cliquer avec le bouton droit de la souris sur la ligne où l'exception non gérée est survenue et dit à Eclipse de l'ignorer.
Utilisez si (vrai) jette nouvelle RunTimeException ("MELP"); CODE> ele Eclipse / Javac se plaindre en effet du code inaccessible. Notez qu'il existe une différence de compilateur subtile entre Runtime B> Exception et une exception "normale".
@Balus, à peu près sûr que c'est une question spécifique à l'éclipse. J'ai posté un exemple qui jette toujours, n'a pas de conditionnellement et compile dans Javac.
Quel est le problème avec juste lancer une exception: à l'intérieur de votre méthode d'exécution. Et bien sûr, ne pas l'attraper. Il devrait déclencher votre gestionnaire. P> p>
Vous devez lancer une exception décochée em>. Une exception non cochée ne nécessite pas que votre code le gère et est donc un bon candidat à faire jusqu'au bout de la pile d'appels. P>
Vous pouvez choisir
Il suffit d'ajouter ce code et vous obtiendrez une exception non gérée sans erreur de lante: