Источник: Oracle - Учебные руководства по Java - " Что такое исключение? ":
"После того, как метод выдает исключение, система времени выполнения пытается найти что-то дляобработать его. Множество возможных «что-то» для обработки исключения является упорядоченным списком методов, которые были вызваны для получения метода, в котором произошла ошибка. ".
Каждая функция, которая не '• непосредственно предоставляют средство для обработки возврата исключения вызывающей стороне с успешным результатом или необработанным исключением для обработки вызывающей стороной.
Функция, которая может встретить исключение и способна обработать его, устраняет необходимостьчтобы вызывающая сторона обрабатывала его, аналогично вызывающая сторона, которая может обрабатывать исключения из своих подпрограмм, сохраняет запись обработчика в подпрограммах.
Если вызывающая сторона вызывает различные подпрограммы, которые могут столкнуться с одинаковыми условиями ошибки, то обрабатывает ее ввызывающий код приводит к меньшему количеству кода (и последовательности в обработке) переписать похожий код в каждой подпрограмме, который будет лучше обрабатываться вызывающей стороной.
Источник: Oracle - Руководства по Java - " Непроверенные исключения - Противоречие ":
"Если разумно ожидать, что клиент восстановится после исключения, сделайте его проверенным исключением.Если клиент не может ничего сделать для восстановления после исключения, сделайте его непроверенным исключением. ".
Попробуйте предсказать, что может произойти , и обработайте, если это возможно, 1024 *, всегда стараясьпусть вызывающая сторона выполнит работу, если она дублирована в нескольких вызываемых пользователях, и «листья дерева поймают light work».
Или мне нужно выполнить достаточно тестов, чтобы найти всеисключения и выбрасывать их?
Написание тестового жгута может быть отделено или частью кода, если оно внутреннее, то обычно (но не всегда) вы хотите определить его вне релизной версии.