Extract Traceback From An Exception
try:
do_shit()
except Exception as exc:
print('----- start -----')
tb = _hx_e.__traceback__
raise RuntimeError().with_traceback(tb)
print('----- end -----')
reef:
https://stackoverflow.com/questions/11414894/extract-traceback-info-from-an-exception-object
Print Traceback Without Raising An Exception
print('----- start -----')
import traceback; traceback.print_stack()
print('----- end -----')
# or
import traceback
for line in traceback.format_stack():
print(line.strip())
The result would be like:
>>> import qingcloud.iaas
>>> conn = qingcloud.iaas.connect_to_zone('pek2', '123', '456')
>>> conn.describe_instances(limit=1)
----- start -----
File "<stdin>", line 1, in <module>
File "qingcloud/iaas/connection.py", line 214, in describe_instances
return self.send_request(action, body)
File "qingcloud/iaas/connection.py", line 42, in send_request
resp = self.send(url, request, verb)
File "qingcloud/conn/connection.py", line 245, in send
request.authorize(self)
File "qingcloud/conn/connection.py", line 156, in authorize
connection._auth_handler.add_auth(self, **kwargs)
File "qingcloud/conn/auth.py", line 118, in add_auth
import traceback; traceback.print_stack()
----- end -----
ref:
https://stackoverflow.com/questions/3925248/print-python-stack-trace-without-exception-being-raised