Leggere la risposta, e leggere un rifiuto
Ogni chiamata risponde. Capire le due forme di una risposta è quasi tutto ciò che rende affidabile uno script.
Un risultato è un dato
Quasi ogni azione risponde con un dizionario o una lista di dizionari. Stampalo una volta per vedere che cosa contiene, poi leggi il campo che ti serve.
Un rifiuto è un’eccezione
Un’azione rifiutata non risponde "no": solleva PermissionError, che ferma lo script se non la intercetti.
try:
avatar.pay_linden_dollars("00000000-0000-0000-0000-000000000000", "Someone Resident", 10)
except PermissionError as refusal:
print("refused:", refusal)- try esegue la riga rischiosa, except intercetta il rifiuto.
- Il messaggio dice quale azione e perché.
- È la stessa eccezione sia che l’azione fosse disattivata in Action Permissions, sia che l’abbia rifiutata la licenza.
Tre motivi per un esito inatteso
- Rifiutato: PermissionError, e il messaggio nomina l’azione.
- Niente da rispondere: la chiamata riesce ma il risultato è vuoto, perché l’avatar è offline o la regione non ha ancora inviato il dato.
- Non è successo nulla, senza errore: l’avatar era già nello stato richiesto. La cronologia lo segna come nessun cambiamento.
Dove guardare dopo
Automation, Execution History elenca ogni chiamata con autore, esito e ora. La scheda Errori raccoglie ciò che non ha funzionato, in parole chiare, una riga per problema. Uno script può leggere lo stesso elenco.
report = avatar.get_errors(limit=20)
for problem in report["errors"]:
print(problem["area"], problem["operation"], problem["occurrences"])