Сбой происходит перед входом в блок попытки. Ошибка не выводится в блоке исключений, если вы вводите букву с текущим кодом.
Простое помещение секции ввода в отдельный блок try не приведет к ее обнаружению - вам нужен блок исключений, связанный спопытка, в которой происходит ошибка, например,
try:
a = float(input('num1: '))
b = float(input('num2: '))
except ValueError as e:
print ('Value Error')
try:
result = a / b
except ZeroDivisionError as e:
print ('Zero DivisionError')
print(result)
В качестве альтернативы, вы можете поместить все входные данные и деление в блок try и поймать с вашей текущей отчетностью:
try:
a = float(input('num1: '))
b = float(input('num2: '))
result = a / b
except ValueError as e:
print ('error type: ', type (e))
print(result)
РЕДАКТИРОВАТЬ:Обратите внимание, что если в любом из них произойдет какая-либо ошибка, это впоследствии приведет к дальнейшим ошибкамВам лучше перейти со вторым вариантом, но переместить печать (результат) в блок try. Это единственный раз, когда он будет определен.