Вызовите исключение в графическом интерфейсе, но продолжайте после ввода пользователем

#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 коду. Или в этом коде есть какой-то фундаментальный недостаток дизайна, из-за которого он должен быть структурирован по-другому?