Der Grund DataAccessException
über SQLException
zu verwenden ist, dass es das Problem allgemein beschreibt. Wenn Sie eine Repository- oder DAO-Schnittstelle mit zwei verschiedenen Implementierungen haben, eine für Oracle und eine für Cassandra, können Sie diese eine Ausnahme Fehler für beide Implementierungen ausdrücken lassen.
Warum ist dies Runtime und keine geprüfte Ausnahme, es ermöglicht den Aufrufern nicht explizit zu behandeln. Es scheint in meiner Erfahrung, dass, wenn ein SQLException
oder DataAccessException
geworfen wird, es nicht viel gibt, was ich tun kann oder will, außer es auf jemanden hinausblasen zu lassen, der kann. Die throwables auf jeder Ebene deklarieren zu müssen, belastet den Aufrufer. Wenn einer von ihnen sich darum kümmert und es anfasst, können sie es tun.
Hier sind die JavaDocs (Danke @ Tom!)
- DataAccesssException
- SQLException
Danke für die Links @ Tom, über inlined. Guter Ruf. – Todd