Тут разница больше в архитектуре. В строго типизированных языках выбрас исключения имеет больший вес, потому что если функция должна вернуть число мы не можем бросить None или строку. В python можно, но это плохая практика.
Понимаешь, я идиот (зачёркнуто), перфекционист и педант. Мне надо точно понять:
1. IF юзаем тогда-то и тогда-то и не юзаем вместо exception
2. exception юзаем вот в таких конкретных случаях (или всегда всегда)
3. в некоторых кейсах допустимо юзать IF вместо exception. (в каких?)
С дотошностью у меня всё плохо. Я прошлую ночь уже плохо спал из-за обсуждаемого вопроса. До сих пор точного ответа не нашел (