記事へ移動
NeuraCoreユーザーWiki
← この章に戻る
組み込み Python

答えの読み方と、拒否の読み方

どの呼び出しも答えます。答えの二つの形を理解することが、信頼できるスクリプトのほとんどです。

結果はデータです

ほとんどの操作は辞書か、その一覧を返します。中身を知るために一度表示し、そのあとで必要な項目だけを読みます。

拒否は例外です

拒否された操作は「いいえ」を返しません。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 の実行履歴に、呼び出し元、結果、時刻が並びます。エラータブには、うまくいかなかったことが 1 件 1 行で分かりやすくまとまります。同じ一覧はスクリプトからも読めます。

report = avatar.get_errors(limit=20)

for problem in report["errors"]:
    print(problem["area"], problem["operation"], problem["occurrences"])