I'm making a maths quiz for a school project and one of the requirements is to do error handling. I want my code to be able to detect when the user enters nothing or when the user enters something that's not number, but I don't know where to put it. I have tried to put it under the an entry but it didn't work, if anyone knows where to put it, please tell me, thanks.
from tkinter import *
import random
p = 0
asked = []
class Starting:
    def __init__(self, master):
        self.frame = Frame(master, padx=200, pady=200)
        self.frame.grid()
        self.title = Label(self.frame, text="Multi-level Maths Quiz",
                           font=("Helvetica", "20", "bold"))
        self.title.grid(row=0, padx=30, pady=30)
        self.usern = Label(self.frame,text="Please enter a username", font=("16"))
        self.usern.grid(row=1, padx=20, pady=20)
        self.userentry = Entry(self.frame, width=50)
        self.userentry.grid(row=2)
        self.usercont = Button(self.frame, text="Continue", command=self.clear1)
        self.usercont.grid(row=3)
    def clear1(self):
        self.frame.destroy()
        Question1(root)
class Question1:
    def __init__ (self, master):
        global answer
        randomiser()
        self.master = master
        self.user_choice = StringVar()
        self.user_choice.set("")
        self.frame = Frame(master, padx=200, pady=200)
        self.frame.grid()
        self.q = Label(self.frame, text="What is {} + {} ?".format(x, y))
        self.q.grid(row=0)
        self.ans = Entry(self.frame, width=50, textvariable=self.user_choice)
        self.ans.grid(row=1)
        answer = x+y
        self.sub = Button(self.frame, text="submit", command=lambda:[self.correct(), randomiser()])
        self.sub.grid(row=3)
    def q2(self, master):
        randomiser()
        global answer
        self.master = master
        self.frame = Frame(master, padx=200, pady=200)
        self.frame.grid()
        self.user_choice = StringVar()
        self.user_choice.set("")
        self.q = Label(self.frame, text="What is {} x {} ?".format(x, y))
        self.q.grid(row=0)
        self.ans = Entry(self.frame, width=50, textvariable=self.user_choice)
        self.ans.grid(row=1)
        answer = x*y
        self.sub = Button(self.frame, text="submit", command=lambda:[self.correct(), randomiser()])
        self.sub.grid(row=3)
    def q3(self, master):
        randomiser()
        global answer
        self.master = master
        self.frame = Frame(master, padx=200, pady=200)
        self.frame.grid()
        self.user_choice = StringVar()
        self.user_choice.set("")
        self.q = Label(self.frame, text="What is {} / {} ?".format(x, y))
        self.q.grid(row=0)
        self.ans = Entry(self.frame, width=50, textvariable=self.user_choice)
        self.ans.grid(row=1)
        answer = x/y
        self.sub = Button(self.frame, text="submit", command=lambda:[self.correct(), randomiser()])
        self.sub.grid(row=3)
    def correct(self):
        global p
        if int(self.user_choice.get()) == answer:
            cor = Label(self.frame,text="Correct!")
            cor.grid(row=5, pady=20)
            p += 1
            self.sub.destroy()
            nex = Button(self.frame, text="Next", command=self.necs)
            nex.grid(row=4)
        else:
            inc = Label(self.frame,text="incorrect, the correct answer is {}".format(answer))
            inc.grid(row=5, pady=20)
            self.sub.destroy()
            nex = Button(self.frame, text="Next", command=self.necs)
            nex.grid(row=4)
        def necs(self):
            self.frame.destroy()
            if p<2:
                Question1(self.master)
            elif 2<=p<4:
                self.q2(root)
            elif 4<=p<6:
                self.q3(root)
def randomiser():
    global x, y
    x = random.randint(5, 12)
    y = random.randint(5, 12)
if __name__ == "__main__":
   root = Tk()
   root.title = ("Maths Quiz")
   instance = Starting(root)
   root.mainloop()
 
     
     
    