首页 > 解决方案 > 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] 都会进入成功路径。任何想法,我该如何实现?

标签: pythonexceptionlogging

解决方案



推荐阅读