AAPT2 Неожиданная ошибка при создании подписанного для выпуска (работает для отладки) [закрыто]

Если вам нужен класс ошибок, сообщение об ошибке и трассировка стека (или любой из них), используйте sys.exec_info().

Минимальный рабочий код с некоторым форматированием,

import sys
import traceback

try:
    ans = 1/0
except BaseException as ex:
    # 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()

    for trace in trace_back:
        stack_trace.append("File : %s , Line : %d, Func.Name : %s, Message : %s" % (trace[0], trace[1], trace[2], trace[3]))

    print("Exception type : %s " % ex_type.__name__)
    print("Exception message : %s" %ex_value)
    print("Stack trace : %s" %stack_trace)

Который выдаст следующий результат,

Exception type : ZeroDivisionError
Exception message : division by zero
Stack trace : ['File : .\\test.py , Line : 5, Func.Name : , Message : ans = 1/0']

sys.exec_info ()

Это дает вам сведения об исключении из последнего исключения. Он возвращает кортеж. Ниже приведены значения кортежа (type, value, traceback).

traceback - это экземпляр объекта трассировки. Вы можете отформатировать трассировку с помощью предоставленных методов. Подробнее можно узнать из документации о трассировке

2
задан Martijn Pieters 4 March 2019 в 01:35
поделиться