try [文] [on error [文字列] [number 整数] [from 参照] [partial result 参照リスト] [to クラス識別子] [global 識別子 [, 識別子...]] [local 識別子 [, 識別子...]] [文] ] end [error | try]
文 | AppleScriptの任意の文 |
文字列 | ダイアログに表示する文 |
整数 | エラー番号 |
参照 | エラーが起きたオブジェクト |
参照リスト | エラーが発生するまでに処理したオブジェクト |
クラス識別子 | 指定された引数に期待するクラス |
try〜on errorの間はインデントされブロックとなる、文1でエラーが発生した場合、その後の文は無視され、文2が処理される。エラーが発生しなかった場合文2は実行されない。
on error〜end tryのブロックは、ハンドラとして処理されるので、ブロック内でglobal,localの変数が設定できる。
display dialog等のダイアログ関連のOSAXでは、キャンセルが選択された場合にエラーを発生させるので、try文を使ってエラーを捕まえる必要がある。
エラーをスクリプトで処理することをエラートラップといい。エラーを積極的に作って利用することもできる。
error命令も、try文と一緒に、有効に活用するといいだろう。
エラーが発生するのは、一見致命的なような感じでもあるが、きちんとエラーを理解してエラーを利用していくことにより、スクリプトの幅が広がる。
なお、on errorを省略できるのはMacOS9.0から。
try
x
on error a number b from c partial result d to e
error a number b from c partial result d to e
end try
try
display dialog "キャンセル?OK?"
on error
beep
end try