昨日のiTunesのタイムアウトの対応であるが、ネットで検索をしたところ、AppleScriptの文法に例外があることがわかったので、あっさりと解決したようだ。
「ようだ」という表現にしているのは、まだそのようにコードを書き換えてのテスト段階であり、ダイアログが出ず、固まらずに実行が継続するかどうか、実働テスト中だからである。
try
on error
end try
で例外処理は構成される。
JavaやC++のtry~catch構文とほぼ同じなので、例外処理を使ったことがあればほとんど差はない。
今回は、iTunesへのtellがタイムアウトしてしまうのが問題なので、それをtryの中に入れ、on errorの中、つまりタイムアウト発生時にはiTunesからデータが取得できなかったときと同じ状態に変数を無理やり書き換えるようにした。
そうすることでサーバへはデータを送信しなくなり、次回のtellが成功すればまとめてサーバへデータは送られる、次回も失敗すれば次々回でという繰り返しになる。
これが使えるとアプリケーション書きやすくなるんだよなぁ。エラー処理が分散しなくなるし。一度例外のある言語でのプログラミングに慣れると戻れなくなる。今更、VisualBasicなんて使いたくない。
コメント