Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Просто интересно как работает try except finally

Post Reply
MAKAPEBu4
Neophyte
Neophyte
Posts: 23
Joined: 16.12.2006 19:19

Просто интересно как работает try except finally

Post by MAKAPEBu4 »

Что-то не додумался и не нашел как узнать длинну строки.
Попробовал конструкцию типа

Code: Select all

var
  charsArr: array[1..8] of char;
  i: integer;
  t: string;
begin
  t := '1234567';
  for i := 1 to 8 do
    try
      charsArr[i] := StrGet(t, i);
    except
      break;
    end;
  AddToSystemJournal(charsArr[1]);
  
end.
на что получил "Could not call proc at 0.220"

При чем меня огорчила работа try except. Работа скрипта обрывалась после того как срабатывало исключение(ошибка).
То что находится в except-end не отрабатывалось все что идет ниже по коду тоже.
Если except заменить на finally то блок между finally-end отрабатывается и опять же дальше скрипт глохнет.

Просто интересно, как работает данная вещь. Правильно ли оно работает? Так и должно обрываться в месте ошибки?

З.Ы. Я свою проблему решил случайно найдя функцию Length которую не смог найти нигде в справочниках...
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Просто интересно как работает try except finally

Post by Vizit0r »

как ненашел?
первая же ссылка из гугля - http://www.delphibasics.ru/Length.php
Length - стандартная функция.

честно говоря, не пробовал работу try..except в скрипте, вечером проверю.

Впрочем, даже если не работает - не смогу починить, в том ПСе что-то серьезно исправить - нереально.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
MAKAPEBu4
Neophyte
Neophyte
Posts: 23
Joined: 16.12.2006 19:19

Re: Просто интересно как работает try except finally

Post by MAKAPEBu4 »

Хм... Как-то не был в курсе, что дельфийские функции/процедуры должны работать.
Я попробовал StringReplace AnsiReplaceStr, а в ответ получил Unknown identifier 'StringReplaces' ну и с AnsiReplaceStr соответствующее сообщение.
Использовал вот так:
StringReplace(url, ' ', '%20', [rfReplaceAll, rfIgnoreCase]);
Все тот же http
Что я сделал опять не так?

З.Ы. Перенесите тему, пожалуйста, в соответствующий раздел, а то я как-то промахнулся изначально (:
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Просто интересно как работает try except finally

Post by Vizit0r »

все так.
только надо при этом вписать в uses sysutils;
непомню зачем я это сделал, вроде что-то там с чем-то серьезно конфликтовало.

чуть позже посмотрю, может уберу этот бред.


и это. Я могу в автокомплитлист добавить вообще функции Паскальскрипта, но тогда список будет БОЛЬШОЙ - пользоваться им будет банально неудобно.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Post Reply