Блок
finally
всегда выполняется. Значение assert
равно true, поэтому блок finally
выдает исключение.
Кроме того, утверждения все равно отключены по умолчанию, что может быть причиной того, что утверждение никогда не оценивалось.
p.s
Если assert
оценивается как ложное, finally
все равно будет работать и выдать исключение вместо AssertionError
.
Помните, что блок finally
всегда выполняется, кроме случаев, когда JVM останавливается в блоке try
.