how to know exception point
Question: I have a source code of 500Mb having more than 5K of files written in Python.
Sometimes I get exception messages but no idea about the line number and file
name of exception. Even sometimes exceptions are not seen on terminal unlit I
specifically use pdb.

Is there any convenient way to get to know about the exception location ?

Thanks.


Answer: Try the traceback module: <https://docs.python.org/3/library/traceback.html>

It contains the tb_lineno function which takes the traceback as a parameter,
returning the line number of the exception.

EDIT:

    
    
    import sys, traceback
    
    def lumberjack():
        bright_side_of_death()
    
    def bright_side_of_death():
        return tuple()[0]
    
    try:
        lumberjack()
    except IndexError:
        exc_type, exc_value, exc_traceback = sys.exc_info()
        print("*** print_tb:")
        traceback.print_tb(exc_traceback, limit=1, file=sys.stdout)
        print("*** print_exception:")
        traceback.print_exception(exc_type, exc_value, exc_traceback,
                              limit=2, file=sys.stdout)
        print("*** print_exc:")
        traceback.print_exc()
        print("*** format_exc, first and last line:")
        formatted_lines = traceback.format_exc().splitlines()
        print(formatted_lines[0])
        print(formatted_lines[-1])
        print("*** format_exception:")
        print(repr(traceback.format_exception(exc_type, exc_value,
                                          exc_traceback)))
        print("*** extract_tb:")
        print(repr(traceback.extract_tb(exc_traceback)))
        print("*** format_tb:")
        print(repr(traceback.format_tb(exc_traceback)))
        print("*** tb_lineno:", exc_traceback.tb_lineno)
    

