Handle scripting errors displaying extra information.
try:
raise NotImplementedError("No error")
except Exception as e:
# catch error
import sys
exc_type, exc_value, exc_traceback = sys.exc_info()
traceback_details = {
'filename': exc_traceback.tb_frame.f_code.co_filename,
'lineno' : exc_traceback.tb_lineno,
'name' : exc_traceback.tb_frame.f_code.co_name,
'type' : exc_type.__name__,
}
# clean
del(exc_type, exc_value, exc_traceback)
# display error message
err_msg = '''
ERROR:
- filename: %s
- line: %s
- type: %s
- error: %s
'''%(traceback_details['filename'],traceback_details['lineno'],traceback_details['type'],str(e))
print(err_msg)try:
#statement to be validated
except BaseException as e:
import sys
import traceback
# Get current system exception
ex_type, ex_value, ex_traceback = sys.exc_info()
# Extract unformatter stack traces as tuples
trace_back = traceback.extract_tb(ex_traceback)
# Format stacktrace
stack_trace = list()
# display
print("Exception type : %s " % ex_type.__name__)
print("Exception message : %s" %ex_value)
print("Stack trace:")
for trace in trace_back:
print("File : %s , Line : %d, Func.Name : %s, Message : %s" % (trace[0], trace[1], trace[2], trace[3]))
stack_trace.append("File : %s , Line : %d, Func.Name : %s, Message : %s" % (trace[0], trace[1], trace[2], trace[3]))