try
{
if(!DoSome10())
throw 10;
if(!DoSome20())
throw 20;
if(!DoSome30())
throw 30;
if(!DoSome40())
throw 40;
if(!DoSome50())
throw 50;
//! Если всё хорошо, то тоже выбрасываем исключение, что-бы почистить всё
//! Конечно если нужно. В приципе чистку можно сделать и тут без выброса исключения
//! но в некоторых случаях получим дублирование кода
throw 50;
}
catch (e)
{
if(typeof(e)=="number")
{
switch(e)
{
case 50: //Clanup 50
case 40: //Clanup 40
case 30: //Clanup 30
case 20: //Clanup 20
case 10: //Clanup 10
default: //! Сюда попасть не должны только если пришли с другог case-а.
}
}
else //! Неожидаемое(не наше) исключение
{
throw e;
//! Пускаем исключение дальше.
//! В том числе сюдой пройду ошибки синтаксиса, а прочие RunTime
//! И Akel их поймает как будто этого try{}catch{} блока не было(место в исходнике покажет правильно)
}
}
FeyFre
Вроде бы, наворотов пока нет, но нужна возможность использовать функции в качестве данных. Впрочем, можно ведь передавать имя глобальной функции, если язык не может передать саму функцию или ссылку на нее.
А я думал про подключение готовых модулей. Вот как с хранением настроек в INI – чтобы в самом конце модуль мог проверить, не нужно ли сохраниться.
AkelPad.InputBox всегда возвращает "string", неудобно. Как при этом узнать, что пользователь нажал отмену?
window.prompt() в таких случаях возвращает null.
И мне снова подсказывают:
Если null будешь просить, проси сразу и password prompt
Это как? Моя без примера не понимать.
Впрочем, практика показывает, что все это ни разу не быстро, так что подобные вещи лучше делать на чем-нибудь более быстром.
I need a function that gets the text in columns.
For example:
AkelPad.GetTextRangeColumn(Start, End[, nNewLine])
where
Start = [nLineStart, nColumnStart]
End = [nLineEnd, nColumnEnd]
or
Start = nOffsetStart
End = nOffsetEnd
Is it possible to do this?
Для случая, когда скрипт реализует немодальное окошко, очень хотелось бы возможность одновременного запуска нескольких скриптов.
А ведь раньше что-то такое было, и mutex'ы были, кажется.
Насчет функции, которая бы выполнялась при определенном событии: можно жестко зафиксировать их названия, например, scriptOnStart, scriptOnFinish, scriptOnBreak и при выполнении скрипта смотреть, если они реализованы, то вызывать, если же нет - то и нехай.
Infocatcher wrote:А ведь раньше что-то такое было, и mutex'ы были, кажется.
Из-за этого было море багов.
Fr0sT wrote:Насчет функции, которая бы выполнялась при определенном событии: можно жестко зафиксировать их названия, например, scriptOnStart, scriptOnFinish, scriptOnBreak и при выполнении скрипта смотреть, если они реализованы, то вызывать, если же нет - то и нехай.
Это лучше в Scripts-плагин отдельными функциями добавить, чтобы можно было галками отмечать "к исполнению". Ну или не отмечать, кому не надо.
И ещё бы в командную строку параметр, который мог бы подменять наименование скрипта при загрузке.
Для случая, когда скрипт реализует немодальное окошко, очень хотелось бы возможность одновременного запуска нескольких скриптов.
А ведь раньше что-то такое было, и mutex'ы были, кажется.
Ну дык сейчас тоже запускаются и работают несколько одних и тех же скриптов.
(Другое дело что это не эксплуатируется в полную силу. Есть у меня одна идейка).