Je ne vois pas beaucoup de différence entre les préoccupations liées à la gestion des exceptions et à la journalisation, car les deux sont des préoccupations transversales. Qu'est-ce que tu penses? Ne devrait-elle pas être gérée séparément séparément plutôt qu'entrelacée avec la logique centrale qu'une méthode met en œuvre?
EDIT : Ce que j'essaie de dire, c'est qu'à mon avis, une implémentation de méthode ne devrait contenir que la logique du chemin d'exécution réussi et les exceptions devraient être gérées ailleurs. Il ne s'agit pas d'exceptions vérifiées / non vérifiées.
Par exemple, un langage peut gérer les exceptions de manière entièrement vérifiée en utilisant des constructions comme celle-ci:
class FileReader {
public String readFile(String path) {
// implement the reading logic, avoid exception handling
}
}
handler FileReader {
handle String readFile(String path) {
when (IOException joe) {
// somehow access the FileInputStram and close it
}
}
}
Dans le langage conceptuel ci-dessus, le programme ne compilera pas en l'absence de FileReader
gestionnaire , car le readFile de la FileReader
classe ne lève pas l'exception. Ainsi, en déclarant le FileReader
gestionnaire , le compilateur peut s'assurer qu'il est géré et le programme compile ensuite.
De cette façon, nous avons le meilleur des problèmes d'exception vérifiés et non vérifiés: robustesse et lisibilité.