AppleScript: при ошибке (попробуйте) номер строки

Можно ли получить номер строки, куда скрипт выкинул ошибку?

Пример:

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

4 ответа

Решение

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

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

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

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

Улыбка Сатимиджа очень помогает в отладке appleScript.

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

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

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

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

И я буду второй рекомендацией McGrailm для Script Debugger!

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

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

Ура -марк

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

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

Другие вопросы по тегам