Я написал простой код Python для ввода любого числа от пользователя. В случае, если что-то еще введено, исключение повышается согласно коду. Я вписываю введенное значение в int, чтобы проверить, является ли оно целым числом. В идеале я исключаю, что при вводе любого алфавита должно возникать исключение и печататься текст, который я дал. Но все же я вижу, что его не поймали.
Однако, когда я специально добавляю еще один блок try-исключением вокруг оператора typecast, он работает
from tkinter import *
window = Tk()
window.geometry('400x400')
class hangman:
def __init__(self):
self.entry = ''
def clicked(self, label2):
label2.place(x=100, y=200)
while True:
try:
def get_value(event):
self.entry = e1.get()
self.entry = int(self.entry)
print(self.entry)
Label(window, text="Enter any number :").place(x=10, y=220)
e1 = Entry(window)
e1.place(x=10, y=240)
e1.bind('<Return>', get_value) #To get the value entered in the entry when Return is pressed.
print("Past bind1")
print(self.entry)
print("Past bind2")
break
except ValueError as e :
print("\n\tPlease Enter only Numbers!!")
obj1 = hangman()
label2 = Label(window, text="Start")
bt = Button(window, text="Play", command=lambda: obj1.clicked(label2))
bt.place(x=150, y=125)
window.mainloop()
Я ожидаю, что будет перехвачено исключение, и напечатает мое сообщение вместо стандартной ошибки исключения.