Читать ответ и читать отказ
Отвечает каждый вызов. Понимание двух форм ответа это почти всё, что делает скрипт надёжным.
Результат это данные
Почти каждое действие отвечает словарём или их списком. Напечатайте его один раз, чтобы увидеть содержимое, а затем читайте нужное поле.
Отказ это исключение
Отклонённое действие не отвечает «нет»: оно возбуждает PermissionError, который останавливает скрипт, если его не перехватить.
try:
avatar.pay_linden_dollars("00000000-0000-0000-0000-000000000000", "Someone Resident", 10)
except PermissionError as refusal:
print("refused:", refusal)- try выполняет рискованную строку, except перехватывает отказ.
- В сообщении сказано, какое действие и почему.
- Это одно и то же исключение, и когда действие выключено в Action Permissions, и когда его отклонила лицензия.
Три причины неожиданного результата
- Отказ: PermissionError, и в сообщении названо действие.
- Нечем ответить: вызов удался, но результат пуст, потому что аватар не в сети или регион ещё не прислал сведения.
- Ничего не произошло, и ошибки нет: аватар уже был в нужном состоянии. История выполнения отмечает это как «без изменений».
Куда смотреть потом
Automation, Execution History перечисляет каждый вызов с автором, результатом и временем. Вкладка «Ошибки» собирает то, что не сработало, понятными словами, по строке на случай. Тот же список может прочитать и скрипт.
report = avatar.get_errors(limit=20)
for problem in report["errors"]:
print(problem["area"], problem["operation"], problem["occurrences"])