python - Python 尝试/最终使用 sys.exc_info()
问题描述
我正在尝试编写一个 python 作业,我将在所有其他作业中使用它来捕获作业开始时间,当程序成功完成或出现一些问题时,我会捕获错误详细信息并将详细信息加载到表中。
job_status
def srt(jobname):
sts = 'running'
df_srt = select(f'''select /'{job_name}/' as job_name, /'{strt_time}/' as strt_time, /'{sts}/' as sts''')
df_srt.write.to_csv(/path_name)
def end(jobname):
df_end = select(f'''select /'{job_name}/' as job_name, /'{strt_time}/' as strt_time, /'{end_time}/', /'{log}/' as log, /'{sts}/' as sts ''')
df_end.write.to_csv(/path_name)
我正在使用的程序
from job_status import *
def main_program:
try:
# some operation
print(1/0)
except:
pass
finally:
if sys.exc_info()[0] is not None:
status = 'Failed'
log = concat(sys.exc_info()[0],' , ', sys.exc_info()[1], ' , ', sys.exc_info()[2])
end_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
end(job_name=__name__, strt_time=start_time, end_time=end_time, sts=sts, log=log)
else:
sts = 'Success'
end_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
end(job_name=__name__, start_time=start_time, end_time=end_time, status=status)
每当发生问题时,我都会尝试捕获错误详细信息。但无论错误的性质如何, sys.exc_info()[0] 都会进入成功路径。任何想法,我该如何实现?