Vai all’articolo
NeuraCoreWiki utente
← Torna al capitolo
Python integrato

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"])