Новости | Почему Мак? | Методика | Работы учеников | Макинтош | SOS! | Ссылки | Об участниках |
---|
Во время выполнения скрипта вполне может произойти "исключительная ситуация". Например, не оказалось файла, который он должен был бы открыть, или скрипт пытается изменить свойства несуществующего объекта, или... Да всего не перескажешь. Кстати, некоторые "ошибки" появляются и при нормальном выполнении операций. К примеру, если пользователь в диалоге "Open File" щелкнет "Cancel". Если не принять специальных мер, во всех таких ситуациях скрипт будет просто прерывать свою работу. Чтобы такого не происходило, в AppleScript предусмотрен особый управляющий оператор:
try
[оператор]... -- "нормальные" операции
on error
[переменная-строка]
[number переменная-целая]
[from переменная-ссылка]
[partial result переменная-список]
[to переменная-класс]
[global переменная [, переменная]... ]
[local переменная [, переменная]... ]
[оператор]...
end try
Он приказывает компьютеру попытаться выполнить некоторые действия (описанные в первой его части), а если попытка заканчивается неудачей — перейти к обработке полученного кода ошибки. При этом обработчик получает исчерпывающую информацию об ошибке:
Вот пример обработки «ошибки», когда пользователь отказывается от выбора файла:
try
choose file
set fileName to result
on error errText
display dialog "Ошибка: " & errText &
"\rИспользовать стандартные настройки?"
buttons {"Завершить", "Стандарт"} default button 2
if button returned of result = "Завершить"
error number -128 --прерывание скрипта
else
set fileName to defaultFileName
end if
end try
Обратите внимание: здесь использован специальный оператор — "error". Он позволяет сигнализировать об ошибке, причем мы можем использовать как стандартные коды ошибок MacOS или AppleScript, так и свои собственные. Например, можно написать строку-сообщение по-русски. |
А вот как можно использовать параметры «from» и «to»:
display dialog "Введите число:" default answer ""
try
set number1 to text returned of result as number
-- display dialog возвращает результат типа
-- запись, мы берем из нее только введенный
-- пользователем текст и пытаемся преобразовать
-- его в число
on error from errObj to errClass
display dialog "Введено <<" & errObj &
">>, когда ожидались данные типа " & errClass
set number1 to 0
end try
Ведущий раздела: Михаил Евгеньевич Крекин Если Вы хотите к нам присоединиться: |