Il y a des tâches qui ne doivent pas être effectuées en parallèle (par exemple ouvrir un fichier, lire, écrire et fermer, il y a un ordre sur cela. ..)Gestion des exceptions Java dans les tâches non séquentielles (modèle/bonne pratique)
mais ... Certaines tâches sont plus comme une liste shoping, je veux dire qu'ils pourraient avoir un ordre souhaitable, mais ce n'est pas un must..example dans les pilotes de independient de communication ou de chargement etc ..
Pour ce genre de tâches, Je voudrais savoir une meilleure pratique java ou un modèle pour gérer les exceptions ..
La manière simple de java est:
getUFO {
try {
loadSoundDriver();
loadUsbDriver();
loadAlienDetectorDriver();
loadKeyboardDriver();
} catch (loadSoundDriverFailed) {
doSomethingA;
} catch (loadUsbDriverFailed) {
doSomethingB;
} catch (loadAlienDetectorDriverFailed) {
doSomethingC;
} catch (loadKeyboardDriverFailed) {
doSomethingD;
}
}
Mais qu'en ayant une exception dans l'une des actions, mais vouloir essayer avec les prochains ??
J'ai pensé cette approche, mais ne semble être une bonne utilisation des exceptions Je ne sais pas pas si cela fonctionne, n'a pas d'importance, il est vraiment terrible !!
getUFO {
Exception ex=null;
try {
try{ loadSoundDriver();
}catch (Exception e) { ex=e; }
try{ loadUsbDriver();
}catch (Exception e) { ex=e; }
try{ loadAlienDetectorDriver();
}catch (Exception e) { ex=e; }
try{ loadKeyboardDriver()
}catch (Exception e) { ex=e; }
if(ex!=null)
{ throw ex;
}
} catch (loadSoundDriverFailed) {
doSomethingA;
} catch (loadUsbDriverFailed) {
doSomethingB;
} catch (loadAlienDetectorDriverFailed) {
doSomethingC;
} catch (loadKeyboardDriverFailed) {
doSomethingD;
}
}
ne semble pas compliqué de trouver une meilleure pratique pour le faire .. Je ne l'ai pas encore
Merci pour tout conseil
La partie centrale de la question est de savoir comment faire un code aussi propre que le premier, mais fonctionnel comme le second (il n'interrompt pas le processus et laisse essayer les instructions suivantes). Et bien sûr ce serait génial si non seulement laisser essayer les suivants, mais si cela permettait de "réessayer" les échecs ... –