Абонент loadResource
не должен знать точную информацию о том, как эти ресурсы загружаются, или, по крайней мере, не заботиться о деталях, почему он вышел из строя.(имейте в виду, что это не вы написали loadResources
, или кто-то другой должен использовать метод loadResources).
Все, что вам нужно учитывать при вызове loadResource, это то, что он может вызвать исключение ResourceLoadException,Не то, чтобы детали реализации не сработали из-за SQLException - это тоже может со временем измениться, позже кто-то может решить загрузить ресурсы из другого места, что тоже может дать сбой.
Вам просто нужно загрузить некоторые ресурсы, вам нужнообрабатывать, если происходит сбой, и не обрабатывать потенциальные MainframeHasCrashedException, FileNotFoundException и дюжину других причин, по которым загрузка этих ресурсов может завершиться неудачей.
Теперь, когда что-то не получается, удобно иметь исходное исключение, вызвавшее сбой, напримерSQLException - так что кто-то, просматривая файлы журналов или тому подобное, может выяснить причину ошибки, проверив трассировку стека
Вы не должны испытывать искушение просто перехватить здесь исключение, если loadResources также может вызвать другие исключения,например, UnautorizedException, вы, возможно, не захотите иметь дело с этим при вызове loadResources - вы можете распространить это исключение среди других вызывающих, которые могут иметь дело с UnautorizedException (ивозможно, запросить у пользователя учетные данные).улов (исключение e) проглотит исключение UnautorizedException, с которым вы действительно не сможете справиться.