#python #user-interface #exception
Вопрос:
Я создаю программу на Python с графическим интерфейсом в PySimpleGUI, где в каком-то случае я хочу попросить пользователя ввести данные при возникновении определенного исключения и продолжить код после этого. Например, когда определенный входной файл не найден, я хочу вызвать FileNotFoundError, уведомить пользователя об этой ошибке и попросить поместить требуемый файл в определенную папку, чтобы пользователь нажал кнопку » Да » или «Продолжить», после чего код продолжается.
Я создал ниже демонстрационный код с файлом, который создает графический интерфейс, вызывающий второй файл, в котором возникает и возникает ошибка. На данный момент я «подделал» пользовательский ввод
#gui_demo.py
import app_demo
#PySimpleGUI code around this code below
try:
app_demo.run_function()
except FileNotFoundError as e:
user_input = input('Do you wish to continue?')
if user_input:
print('continue with code from app_demo')
И второй файл
#app_demo.py
def run_function():
try:
raise FileNotFoundError
print('File is found part 1!')
except FileNotFoundError as e:
raise e
print('File is found part 2!')
Как я могу этого достичь? В случае, если это касается одного файла, я могу использовать цикл while, чтобы повторить попытку, за исключением блока, но в этом случае мне каким-то образом приходится обмениваться данными от gui_demo
кода к app_demo
коду. Или в этом коде есть какой-то фундаментальный недостаток дизайна, из-за которого он должен быть структурирован по-другому?