Если не выполнены определенные предварительные условия для выполнения бизнес-условия, мы сгенерируем пользовательские исключения, например, если остаток на счете равен 0, дебет невозможен, вы сгенерируете NotSufficientAmountException.
re-throw - дляразличные цели, во-первых, сообщить вызывающей стороне, что произошло что-то неправильное, во-вторых, передать трассировку стека вызывающей стороне с более подробной информацией о том, в какой строке произошла ошибка кода и т. д.,