Обработка исключений в Python - mysql.connector - PullRequest
0 голосов
/ 04 июля 2018

у меня 2 программы питона 1) «Prog1.py», который имеет дело с базой данных - запросы из базы данных 2) «Prog2.py», который содержит основной цикл выполнения, как показано ниже

#importing the database class from Prog1.py (mysql.connector used to in Prog1.py)
from database import Database
...

#main run loop
while(True):
   time.sleep(0.2)
   for loc in data:
         self.datafunc(loc)
         call_func_fromprg1()
         foo()
         bar()
    #not to run these conditions if exception is met
    if expression1:
        then operation1
    if expression1:
        then operation2
    if expression3:
        then operation3
    if expression4:
        then operation4

    var = time()

Я пытаюсь создать исключение Ошибка в call_func_fromprg1(), когда вызывается функция из Prog1.py и выдает ошибку mysql.connector.errors.InternalError : Deadlock found when try to get lock и пропустите оставшуюся часть цикла while, а не обновляйте время в конце и снова перезапустите через 0.2 с, как указано в коде.

Что мне нужно, так это лучшее место для написания нижеследующего пункта

try:
...
except:
 continue
...

1 Ответ

0 голосов
/ 04 июля 2018

Один из способов - создать переменную состояния в prog2.py, как показано ниже.

from database import Database
...

#main run loop
while(True):
   time.sleep(0.2)
   for loc in data:
         self.datafunc(loc)
         status = call_func_fromprg1()
         foo()
         bar()
    #not to run these conditions if exception is met
    if expression1:
        then operation1
    if expression1:
        then operation2
    if expression3:
        then operation3
    if expression4:
        then operation4
    if status:
        var = time()

и в prog1.py создайте возвращаемое значение True, как показано ниже:

def function():
    try:
        # your code here
        #
        return True
    except:
        #Exception codes
        return False
...