AppleScript: при ошибке (попробуйте) номер строки - PullRequest
15 голосов
/ 12 мая 2011

Возможно ли получить номер строки, в которой скрипт выкинул ошибку?

Пример:

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

Ответы [ 4 ]

23 голосов
/ 12 мая 2011

я так не думаю, попробуйте заявления выглядят так

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

но вы можете посмотреть на скрипт-отладчик , который покажет вам, в какой строке произошла ваша ошибка

другая альтернатива - получить textmate , который идет за 52 доллара, когда он дает ошибку, дает номер строки и также полезен для написания кода на многих языках

2 голосов
/ 19 апреля 2013

Satimage's Smile очень помогает в отладке appleScript.

И это бесплатно.Плюс это французский (хе-хе).

Определенно отличный инструмент!

1 голос
/ 18 января 2012

На самом деле синтаксис при ошибке также включает номер ошибки (но без номера строки):

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 !

0 голосов
/ 24 января 2013

Опоздал на вечеринку, но в отношении отладчика сценариев вот, пожалуй, полезный ответ от Марка Олдритта:

Да, включить исключения при включении. Это приводит к сбою отладчика в точке, где выдается исключение. Отладчик также показывает состояние всех известных переменных на момент выдачи исключения. Затем вы можете перейти в блок «при ошибке».

Приветствие -Марк

2013-01-24, в 8:43, Дэн написал:

Когда скрипт выдает ошибку в блоке Try, есть ли какой-нибудь разумный способ отобразить строку, где произошла ошибка?

...