Программа завершается при ConnectionError, хотя исключение обрабатывается в PyQt5 - PullRequest
0 голосов
/ 02 апреля 2020

В моей программе я использую модуль запросов для вызова URL. Если в случае ошибки сети или любых других проблем, я обрабатываю ошибку. В блоке исключений ниже, используя таймер, я снова вызываю службу (url) через указанный интервал времени c. Я пытался запустить программу без сети, ответ на запросы:

"HTTPSConnectionPool (host = 'com', port = 443): максимальное количество повторов превышено с помощью url: / api // issubmitted / 2020 / 3 / (вызвано NewConnectionError (': не удалось установить sh новое соединение: [Errno 11004] getaddrinfo fail',))) "

Но программе не удается вызвать таймер. Он просто завершается, процесс завершается с кодом выхода 1073741845.

from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt, QTimer
import sys

class ShowScreen():

    def call_api(self):
        resp1 = CallServices.is_submitted(self)
        if resp1['isLocked'] == False:
            Main()


class CallServices():

    def is_submitted(self):
        url = '%s/issubmitted/%s/%d/%s' % (url_sub, year, month, username)
        try:
            response = requests.get(url)
        except (requests.exceptions.RequestException, 
     requests.exceptions.ConnectionError) as e:
            print("error")
            api_logger.debug('DEBUG- IsSubmitted Response: %s', e)
            timer = QTimer(QApplication.instance())
            interval =  1000
            timer.setInterval(interval)
            timer.timeout.connect(lambda: ShowScreen.call_api())
            timer.start()


class Main(QMainWindow):

    def __init__(self):
        super().__init__()
        self.initUI()

class MainClass():
    def start_timer(self):
        app = QApplication(sys.argv)
        Main()
        sys.exit(app.exec_())

if __name__ == "__main__":
    m = MainClass()
    m.start_timer()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...