web-dev-qa-db-ja.com

AppleScript:エラー時(試行)行番号

スクリプトがエラーをスローした行番号を取得することは可能ですか?

例:

try
    set a to "abc" + "123"
 on error line number num
    display dialog "Error on line number " & num
end try
15
Tyilo

私はそうは思わないので、ステートメントは次のようになります

try
    set a to "abc" + "123"
 on error errMsg
    display dialog "ERROR: " & errMsg
end try

しかし、 スクリプトデバッガー を見ると、エラーが発生した行がわかります。

もう1つの方法は、 textmate を取得することです。これは、エラーが発生すると52ドルになり、行番号が表示され、多くの言語でコードを書くのにも役立ちます。

23
mcgrailm

Satimageの Smile は、AppleScriptのデバッグに関して非常に役立ちます。

そして、それは無料です。それに加えて、それはフランス語です(hehe)。

間違いなく素晴らしいツールです!

2
Zitoun

実際には、on error構文にはエラー番号も含まれています(行番号は含まれていません)。

try
    set a to "abc" + "123"
on error errorMessage number errorNumber
    log ("errorMessage: " & errorMessage & ", errorNumber: " & errorNumber)
end try

セマフォを使用して、進行状況をマークできます。

try
    ... your code here ...

    set lineNumber to "17"

    ... more code here

    set lineNumber to "18"

    ... more code here

on error errorMessage number errorNumber
    log ("(line #" & lineNumber & ") errorMessage: " & errorMessage & ", errorNumber: " & errorNumber)
end try

そして、2番目のmcgrailmの推奨事項 Script Debugger

1
geowar

ここでのパーティーに遅れましたが、スクリプトデバッガーに関しては、MarkAlldrittからのおそらく有用な応答があります。

はい、Break OnExceptionsをオンにします。これにより、例外がスローされた時点でデバッガーが中断します。デバッガーは、例外がスローされたときのすべての既知の変数の状態も表示します。次に、「エラー時」ブロックにステップインできます。

乾杯-マーク

2013-01-24の午前8時43分、ダンは次のように書いています。

スクリプトがTryブロックでエラーをスローした場合、エラーが発生した行を表示する合理的な方法はありますか?

0
Dan