Кажется, что моя обработка исключений работает неправильно. Когда я ввожу строку в качестве ввода, правильное исключение не появляется. Когда я ввожу отрицательное число, у меня та же проблема. Кто-нибудь знает, как это исправить?
Я пытался изменить условия, которые вызывают исключения, но все еще не нашел решения проблемы.
def main():
try:
height = int(input())
check_height = type(height)
if height == 0 or height > 999:
raise Exception
elif check_height != int:
raise TypeError
elif height < 0:
raise ValueError
else:
for blocks in range(height):
if blocks == 0:
print ("+-+")
print ("| |")
print ("+-+", end = "")
else:
print ("-+")
for num in range(blocks):
print(" ", end = "")
print ("| |")
for num in range(blocks):
print(" ", end = "")
print ("+-+", end = "")
print("\n")
except Exception:
print("Value can't be equal to 0 or greater than 999")
except TypeError:
print("Value is not an integer")
except ValueError:
print("Value is less than 0")
finally:
pass
main()
Ожидаемый результат должен бытьблок, который выглядит следующим образом, если введенный ввод был 1: (см. скриншот вывода выше)