これまでで、外部XML、画像の読み込みができるようになりました。今回は一旦立ち止り、”LoadURL”,”CastImageLoader”等のエラー処理について検証。
まずxmlから。以前に書いたものを整理すると
#CODE-1
これに、基本的な各種イベント監視の追加と、”LoadURL.error”を追加。
#CODE-2
この状態で”URLRequest”のURL値を存在しないファイルにすると、以下のエラーが出ます。
IOErrorEvent.IO_ERROR!!
[ERROR] <LoadURL : command_7> コマンドで CommandExecuteError エラーが発生。
config.error
[ERROR] <SerialList : command_9> コマンドで CommandExecuteError エラーが発生。
まず、LoadURLの中でエラーが発生し”CommandExecuteError “が発動、そしてその親のコマンドリスト”SerialList “にも必然的にエラーが発生し、”CommandExecuteError “が発動。エラー出力の中の”command_*”はコマンドの順番(id)だと思うのですが、7番等がどのCommandを具体的に指し示しているのか?はちょっと分かりません。(内部でCommandが追加されているのだと思う)
“LoadURL”は”CommandExecuteError “発生後、”config.error”に処理が移動して、”config.after”へは処理は流れない。これはこれで良いのですが、全体の制御を考えると逐一末端レベルで処理するのではなく、Indexの”SerialList”で全体を一括して管理した方が良い気がします。ということで、”config.error”を削除して”list(SerialList)”に”error”を設定。
#CODE-3
で、実行してエラー発生時の出力は、
設定読み込み開始(list)
IOErrorEvent.IO_ERROR!!
[ERROR]コマンドで CommandExecuteError エラーが発生。
[ERROR]コマンドで CommandExecuteError エラーが発生。
コマンド処理中にエラーが発生しました。(list.error)
になる。
“Event.COMPLETE”,”IOErrorEvent.IO_ERROR”,”SecurityErrorEvent.SECURITY_ERROR”のイベントに直接関連付けて何かをする必要はなさそうです。(エラーの詳細の情報が欲しい場合は必要かもしれませんが・・、リスナーに関係したGC問題とか考えるとできるだけリスナーの独自追加は控えた方が良いのかも・・・)
さて、エラー時の対応処理によって作り方は様々ですが、とりあえず外部XML読み込みはこんな感じかな?
次は外部画像読み込み系を検証してみようと思います。