查找python代码中发生异常的行号

发布于 2021-01-29 16:58:54

我有类似的代码:

try:
  if x:
      statement1
      statement2
      statement3
  elif y:
      statement4
      statement5
      statement6
  else:
      raise

except:
      statement7

在这里,我确定该异常发生在If x:块中,但是我想知道If x:该异常发生在哪个块语句中。有没有办法获取发生异常的行号?

问候,

关注者
0
被浏览
143
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    那这个呢:

    try:
      if x:
          print 'before statement 1'
          statement1
          print 'before statement 2' #ecc. ecc.
          statement2
          statement3
      elif y:
          statement4
          statement5
          statement6
      else:
          raise
    
    except:
          statement7
    

    这是直接的解决方法,但我建议使用调试器

    甚至更好,请使用sys模块:D

    try:
          if x:
              print 'before statement 1'
              statement1
              print 'before statement 2' #ecc. ecc.
              statement2
              statement3
          elif y:
              statement4
              statement5
              statement6
          else:
              raise
    except:
        print sys.exc_traceback.tb_lineno 
        #this is the line number, but there are also other infos
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看