keyerror'mixduring handling of the above exceptionanother exception occurredtraceback (most recent call last)file ""line in file "auth py"line in check_permission raise permissionerror("permission does not exist"auth permissionerrorpermission does not exist auth authorizor permit_user("mix""joe"traceback (most recent call last)file "auth py"line in permit_user perm_set self permissions[perm_namekeyerror'mixduring handling of the above exceptionanother exception occurredtraceback (most recent call last)file ""line in file "auth py"line in permit_user raise permissionerror("permission does not exist"auth permissionerrorpermission does not exist auth authorizor permit_user("paint""joe"auth authorizor check_permission("paint""joe"true while verbosethe preceding output shows all of our code and most of our exceptions in actionbut to really understand the api we've definedwe should write some exception handling code that actually uses it here' basic menu interface that allows certain users to change or test programimport auth set up test user and permission auth authenticator add_user("joe""joepassword"auth authorizor add_permission("test program"auth authorizor add_permission("change program"auth authorizor permit_user("test program""joe"class editor