Подскажите, пожалуйста, как можно доработать нижеприведенный метод для связывания двух городов карты так, чтобы возникла исключительная ситуация, если одного из городов нет на карте. Пусть исключение сохраняет в свойстве Message название отсутствующего города. Как написать обработчик этого исключения?
Код | Function Tmap.Link(const Nm1, Nm2: string): boolean; var C1, C2: TCity; Slct: TSelect; begin Result := FALSE; If Nm1 <> Nm2 then begin {Нельзя связывать сам с собой} C1 := Find(Nm1); C2 := Find(Nm2); {Города должны принадлежать карте} If (C1 <> Nil) and (C2 <> Nil) then begin Slct := TSelect.Create(C1.FLinks); {Связь может уже существовать} while (Slct.Current <> Nil) and ((Sclt.Current as TLink).FPCity <> C2) do Sclt.Next; {Собственно связыание} if Slct.Current = Nil then begin C1.FLinks.Insert(TLink.Create(C2), Nil); {Связь двунаправленная!} C2.FLinks.Insert(TLink.Create(C1), Nil); Result := TRUE; end; Slct.Free end end end;
|
|