我有2个pyton程序 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()
上创建一个Error异常,其中Prog1.py中的一个函数被调用并引发错误
mysql.connector.errors.InternalError : Deadlock found when try to get lock
并跳过其余的while循环,并且不更新最后的时间,而是按照代码中的说明在0.2s之后再次循环。
我所需要的是编写以下条款的最佳地方
try:
...
except:
continue
...
答案 0 :(得分:0)
一种方法是在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