The OpenNET Project / Index page

[ ������� /+++ | ����� | ���� | ]

������������� ������� ������������ Eiffel �� ���������� �������������� �� ��������� (eiffel )


<< ���������� ������ ��������� src / ������ ��������� >>
�������� �����: eiffel,  (����� ������� ���������)
�����: croster <> Newsgroups: email Date: Mon, 4 Mar 2013 17:02:14 +0000 (UTC) Subject: ������������� ������� ������������ Eiffel �� ���������� �������������� �� ��������� PDF-������ ��������: https://www.opennet.ru/soft/DesignByContract.pdf ������������� ������� ������������ Eiffel �� ���������� �������������� �� ��������� (Design by Contract) ���������. � ���� ������� ������� ����� ���������� � ������������ ����������, ��� ������ �� ������ ��������� � ��� �������� ������. ���������� � ������������ ������������ ����������� ��������� ���������� �� ��������� ����������, ������� ������������� ������̣���� ������� �� �������������. ������������ ���� ������ ������� � �������� ������ �������������� �� ��������� (Design by Contract), ����������� �� ���������� �����������, ���������� ������������ � ������ �����. ��� ����������� �����:
  • ޣ���� ������������� ��������������� ����� ������������;
  • ���������� � ������������, � ��������� ��������� ��������������� ������� � ������������� ����������;
  • ���������� � �������������� ���������;
  • ����� � �������������� �����������������. �������������� �� ��������� ���� � ������ ������ �������� � ���� Eiffel �� ������ ������������ ����� ���������������� EiffelStudio, � ���������� �� ���� ����������� �����������, ������������ � ���� ������. ���� ����� ���������� � � ������ ����� ����������������, � ��� ����� � ����� ��������������, � ������� ���������� ��� ������� ���������. ��������������� ���������� �������������� �� ��������� ��������� ��������� ���������� ����������� ������ � �� ��������� �������������, ��������� ����� ��������� ������, �������� �������� ���� � ���������� ������������ �����������. �������������� �� ���������, ����������� � ���������� Design by Contract (tm), Assertions and Exceptions �������: ��������� ������ �������� ��������: ��������� ��������� ���������� 1. ������ �������������� �� ��������� 2. ��������� ����������� 2.1 ����������� 2.2 ����������� 2.3 ���������� ������ 3. ������������� ���������� ��� ����������� ���������� 4. ���������� ����������� �� ����� ���������� 5. ����������� ����� ������ 6. ��������� ���������� 7. ���� ���������� �������������� �� ��������� � Eiffel ��������������� ����������� ���� �������������� �� ���������, ���������� ���������� �� � ��������������� ������� ������ ��� ������������ ��, ���������������� � ������������, � ����� ��� ��������� ���������� � ����������� ������������� ������������. 1. ������ �������������� �� ��������� ������� (� ���������, ����������� �������, ������ ���� ����� �����) ������� �� ������������� ���������� ����������������� ���������. �������������� �� ��������� ���������� ��� ����, ��� �� �������������� ������ ���� �������� �� ������ ������������� - ���������� - ����������� �������� � �������� ������ �������. �������� � Eiffel ����� �� �������� � �������� ����� ����� ����� ������ ��� ����������, ������� ������ �������� � ����� �������, ���������� �������� � ��������. ���������� ������ ����, ��� ����� ������� � ����� ������ �������� ����� �������������� � ���������� ���������. |-------------------------------------------------------------------------------------------------- | �������������� | | | ���������� ����� | ������������� | ������ |-------------------------------------------------------------------------------------------------- | ������ | (�������������� �����������): | (�� �����������): | | ������ ����� | ��������� ���������� ����� �� ���������� --------------------------------------------------------------------------------------------------- | ��������� | (�������������� �����������): | (�� �����������): | | �������������� ���������� �����| ��� ������������� � �������������� ����-���� | | | ��� �������� ����� --------------------------------------------------------------------------------------------------- �������� �������� �� ��, ��� ������������� ������ ������� ������������ �� ������ ������. ��� ����� ����� ��������. ������������� �������, ������� �������� ����������, ���������� ������������. ��� ���������� �� �������, ������� ������ ������������� ������ ����� �������� ������������ ��������. ������ �������, �����������, ��� ��������� ������ ��������� (��������������, ��� ����������� �������������), ���������� ������������. � ���������� � ������������ � ������������ ��������� ������ �������� ���������� ������, ���������� � ������ � �����. ����� ����� ����� �������, ��� ���������� ���������� ������ ������ ���� ��������� ������ ���������� �������� (��� ��� ������������� �� ���������, ���� ��������� �������� �����������) � �������������� ������ �������������� ������������� ������. 2. ��������� ����������� ��������� Eiffel ��������� �������� ����������� (require), ����������� (ensure), ���������� ������ (invariant), � ����� ������ �����������, ��������� ����� (��. ������ "���������"): �������� � ���������� �����, ��������� ��������. ���������� ����������� ����� ACCOUNT, ���������� ������ ����������� (�������������� ������ ����� ������ ��. ����� - ����. �����.). note description: "������� ���������� �����" class ACCOUNT create make feature {NONE} -- ������������� make -- ���������������� do create all_deposits end feature -- ������ balance: INTEGER -- ������� ������ deposit_count: INTEGER -- ���������� ��������� ������� � ������� �������� do Result := all_deposits.count end feature -- ��������� �������� deposit (sum: INTEGER) -- �������� `sum' �� ����. require non_negative: sum >= 0 do all_deposits.extend (sum) balance := balance + sum ensure one_more_deposit: deposit_count = old deposit_count + 1 updated: balance = old balance + sum end feature {NONE} -- ���������� all_deposits: DEPOSIT_LIST -- ������ ������� � ������� �������� ����� invariant consistent_balance: balance = all_deposits.total zero_if_no_deposits: all_deposits.is_empty implies (balance = 0) end -- ����� ACCOUNT ����� ����������� ������� �� ������ ��� ����� ������������, ������ �� ������� ������������ ����� ���������� ��������� (� �������������� ������������ old). ������ �� ���������� ������������, ��� � ����������� ���������� deposit � ����������, ����� ��, ��� � �� ����������� �� � ������� and. ������� ��������� ����� �������������� �����, ����� ��� consistent_balance � ����������, � ���������; ����� �������� �������������� � �� ������ �� ��������� �����������, �� ����������� ��������� �� ������� (��� ��������� � ��������� �������), ������ �� ��������������� ������������� �������� ��������������� ������. ���������� ��������� a implies b ��������� �������� ������, �� ����������� ������, ����� a ����� �������� ������, � b - ����. ��� ��� ����������� ���������� ����������� ���������� ���������, ��� ����� �������� ������ �������. ��� ������ ��������� ��������� ������� ������� ���������������, ����� ��� "���� �� �������� ������", ������� �� ����� ���� ����� �������� ����� ������� ��������� ��� ���������� ���������� ������� �������, �� ������� ������ ����������� ��� ������� Eiffel, ������������ ���������� ����������� ����. 2.1 ����������� ����������� ������������ �������� �������, ������������� ������������� �� ����� ��������. ����� deposit �������� ���������� ����� � ������ �����, ����� �������� ��������� ��������������. ������������ �� ����������� ������ ��� ������, �� ���������������� �����������. ������ ����������� Eiffel �������� ��� ����, ��� ���� ������������ ������� �� ������� ��������� �����������, ��� ��� ��� ����������� �������� ������������ �������. ��������� (�.�. �� ����� �������� ������� � ����� ����� ����������) �������� �������������� �� ���������, ���������� � ������ ������ ������ ���������� � ��������� ������, ����������� � ���, ��� �������� �������� ����� �������� �� � ������� ����������� ����� �������� � ������ ���������. 2.2 ����������� ����������� ������������ �������� ��, ��� ������������ ����������� ����� �������� ��� �������, ��������������� �����������. ������ old expression, ���������� ������ � ������������ (��������� ensure), ���������� ��������, ������� ����� ��������� expression ��� ����� � ������������. ����������� � ����������� ������������� ������� ��������� ����� ������������� � �� ��������� ���������� ����������� ������� ��������� ����� ������. |-------------------------------------------------------------------------------------------------- | deposit | ������������� | ������ |-------------------------------------------------------------------------------------------------- | ������ | (�������������� �����������): | (�� �����������): | | ������������ ��������������� | ��������� ������������ ������ | | �������� | ������� � ������� ����� --------------------------------------------------------------------------------------------------- | ��������� | (�������������� �����������): | (�� �����������): | | �������� ������ ������� � ������| ��� ������������� � �������� | | | ������������� ���������� --------------------------------------------------------------------------------------------------- 2.3 ���������� ������ ��� ���� ��������, ��������� ������ �������� �� ���� �����������. �� ������ ����������� ��� ������ �� ��������� ��������, � ������ ����������� � ����������� � ����������� ������ �������������� ������������. � ���� ��������� ���� ��� �������, ��� � ������ ������� ��� ��������� ������������: ������� ������� ����������� � ���, ��� ������������� ������ ����� ���������� � ���������� ���������, ������������ � ������� ������������� �������� ����, ��� ���� ������ all_deposits ��������� � balance; ������ ������� ����������� � ���, ��� ������ ������������ ���������, ����������� � ���������� �����������, ������ ������������ ������ ������������ � �������������� ���������� ��� ������ �� ���. ���������� ����������� ���������� ����������� � ���, ��� ��� ������ ���� ��������, �� ���� �������������� �������� ����������. ��� ������������� ������� ���������������: ���� ������������ �������������� ������� (���� ��� ���������), ������ ���������, ����������� � �� �����������, ����� ������ ���� �������� ����� �������. � ��������� ������, ��������, ���� ����������� �������� ������� require n > 0, ��� n - �������� �������, �� ��������� ��� �� ������� ����� ����������, ������� ������� ������ �� ���� �� ���������. ����� ��������, ��� ���������� ����������� ��� ������� �� �������� ��� ��������. �������, ��� n ��������������, ��������� ����� ��������� ����������� � ��������� ������ else: if x.n > 0 then x.r end ������ ���� � ��������� ������ � ���� ������� ���������������, ��� n �������� ������������� (��������, �������������� ����� �������� n ����� ���������� ������), �� ��� ������������� � if ��� �������� �����������. ����������. � ��� �������, ����� ������� �������� �������� ������������, ������������� ������������ �������� check (��. ������ "���������"). 3. ������������� ���������� ��� ����������� ���������� ��� ���� ����� ������������ ���������? ������ ������������� ����� ����������������. �������� ��� ����� ����� ����� ������� ��������� ���������� �������������, ������� �� ������������ ����������, �� ������ ���������� ���������� ����������: �� ��������������� ������������ � ����������� ������������� ��� ����������� ������������. ��� ������� ����������, ����������� �� ��� ���, ���� �� �� �������������� � �������������� �� ��������� ��� ���������� �������� �������, ���ޣ� ������� �� ��������� � �������� ���������������� � ��������, ��� � ��������� ����� ��������� ����������. 4. ���������� ����������� �� ����� ���������� ��������� � Eiffel - ��� �� ������ �������� ��������. ��� ����� ������������� �� ����� ���������� ��� ����������� ����� ����������. �� ��������������� �������� ������ ���� ����, ��� ��������� �� �������� ���������� ������������ ����������� �������, �������� ���������� ����� ������������. ��� ���� ����� �������� ������� ��������� ���������� (if deposit_sum > 0 then ...), ����������� � ���������� ������� ���������� ��������� ����������. ����������� �������� �������� ������������, �������������� ����������� ����� ����� ������������ �������� (�� ����������� ������� � ��������� � �� ����������� ������� � ������� �����������). ���� �������� sum ����������� �� ����� � ������������ deposit, �� ������� � ���� ������ ����������� �������, ����� �������� ��� ������������ ���������� ��� ���������� ������� ��������. �������: ��������� �����������. ��������� ����������� �� ����� ���������� �������� ����������� ����������� ������ (�����). ����� �����: 1. ��������� ����������� ������������� � ���� �� ������� �������, ������� �� ��������� ���� ����� ��������; 2. ��������� ����������� (��� ����������) ������������� � ���� �� ������� ���- ������� - ������������ �� ��������� ���� ������. ��� ���������, �������� ��������� �����, ���������, ������ ��������� ��������� ��� ���������� ������������ ����������� ����� ���� ����� ����� ����������: ��� ���������� ������� ��� ����� ����������� ������ ����� �����������, ����� ���������� �� ������ ��������� � ��������� �������. ������ ��� ������������ ������� ��������� �������� ����������� ������ ��� �������� Å£ ������� �������� ������������ ����������� �� ����� ���������� � ������������. �������� ������ ����� ����������, ������� EiffelStudio ��������� ���������� ���������� ��� ������� ������ �� ���������� �� ��������� ��� ���������� ������ � ������ ���������: 1. no - ����������� �� ������������� �� ����� ����������; 2. require - ������������ ������ ����������� �� ����� � ������������; 3. ensure - ������������ ����������� �� �����, ����������� �� ������; 4. invariant - �� ��, ��� � ensure, ���� ��������� ������ �� ����� � ������ ��� ����������������� �������; 5. all - �� ��, ��� � invariant, ���� ��������� check, �������� � ���������� ������. ��������� ����������� �� ����� ���������� ��� ����� ����� ����������, �� ����������� ������, ������� ���������� (��. ������ "��������� ����������"). ���� �� �� �������� ����� ���� "�������������", ��� ��������� � ���������� ����������, ��������� �����ģ� � ����������� ���������� � ������� ���������� (��� � EiffelStudio ������� � ��������� � ������� � ����� ����). ��� ������ � ����������� �������� ����� �������� ����� ����������� ������������, ���� ��� ������������. ��������� ����� ������������ ����������� �� ��������� �������� require. ��� ������� ���, ��� Eiffel ���������� �� ��������� �������������: ��� ����� ���������, ��� EiffelBase, ���������� ������������ ���������� �����������, ���������� ������� �������������. ������ � ���������� �� ����� �������� � ��������� ������ �� ���� �����������, �������� ����� ������������ ��������. ��������� �������������� ����� ����������� � ���, ��� ���� ����������� ����������, ������� ��� �� ������� ������ ��������� ���� ����� (�� ����������� ����������������, ������, ����������� ��� �������������), ������� ������ �� ������� ���������� � ���� ����� ����������. �� ����� ���������� � ������������ ���������� ����������� ������ ���� ��������� �� ����� ������� ������. ��������� �� ����������� ���������� � ����������� ���������������� ���������� "Melting Ice" (�������� "������ ���" - ����. �����.) ��� ��������� �������� �������� ����������, ���������� � ������� "�������� � ����������������", ��� ������� ������ ������������ ��� ������ ����������. �����, ��� �� ����������� ���� ����� � �������� �������, �� ����� �����������, ��� ����� ������ ������� ���� ��������; �� ��������� ����� ��������� ���������� � ������������, ���������� �� ������ ������, ����� ����������� ����ģ�, ��� ��� ������� �� ����� ����. ������������ ������ �������� ����, ��� �� ������ ���������, � ��������� � �������� ���������� ��� (��� �� ������ � ��������� ������), �������������� �� ��������� ������ �������� �������� �������, ������������ � ���������� ���������. � �������� ������� ��������� ������ ������� ������ ��������� ���������� ��� ������� ��� ������� �� require. ������ ������� ������� �� �������������, ��� ���������� ����� ������������� �������������, ������������� ����� ������, � ����� ��������� ������������ � ������� �������� �������� �������� ��������. ��� ���������� �� �� ������ ������ �������� (����� �� �������� ������������), ��� � ����� ���������� ����� ��������. 5. ����������� ����� ������ ������ ���������� ����������� - ������������. ��� ������ �� ������ Contract Form (��������) � EiffelStudio ��������� ����� ����������� �� ������ ������ ����������� ������, ������� �������� ������ ���������� ����������� ������� ��������. �������� ����������� ����� ������ ACCOUNT, �������������� ����. note description: "������� ���������� �����" class interface ACCOUNT feature -- ������ balance: INTEGER -- ������� ������ deposit_count: INTEGER -- ���������� ��������� ������� � ������� �������� feature -- ��������� �������� deposit (sum: INTEGER) -- �������� `sum' �� ����. require non_negative: sum >= 0 ensure one_more_deposit: deposit_count = old deposit_count + 1 updated: balance = old balance + sum end -- ��������� ������ ACCOUNT ����� class interface ������������ ������ �������� class ��� ����, ����� �������� �������� � ������� ������� ��������� �� Eiffel, ��� ��� ��� ������������, � �� ����������� ��. ���������� �������� ������������� ������������� ������� ����������� ����� � ���� ����������� ������. �� ��������� � ������ �������, ����������� ����� ������ (����� ���������� "������� ������"), ��������� ��� �������� ����������, ����������� ������� ��������: 1. ����� � ��������� (���������� �� ���������� � ���� ����������) ��� ������- �������� �����������; 2. ������������ ����������� ���� �����������, ������� �������� ������������ ����������� �� �������������� (������, ��� �������� � ������� "Hello World", ������� �������� ����������� ��������� ���� ������������ � ������������� �� ����������� ���������); 3. ����������� � ����������� ���� ����������� (��� ������� ������������, ����- ������ ������ �������������� �������); 4. ��������� ������ (���������� �����������). ��������� �������� �� ������ � ����������� ����� ������: ����� ���������� � ���������������� �����������; ���� ���� ����������� (�������� do ��� �������� external � once, ��������� � �������� "������� ��" � "����������� ������������ � ����������� �������"); ������������ �����������, ���������� ���������������� �������; ��������� �������� �����, �� ������������ � ������������. � ������������ � ��������� ���������������� ������� (��������� � ������� "�������, ����, �������� � ������") ����������� ����� �� �������� �������� ����� ���������� � ��������� ��� ����������. � ����������� ������� balance ����� ���� ��� ���, ��� � ������, ��� ��� ��� �������� ��� �������, �� �����������, ��������, ������������������. ����������� ����� �������� �������� ������������ ��� ������������� ������� ���������� � ������ Eiffel. ��� ��������� ������� �������� �������� ������������ ����������� �������� ��� ������������� ������ �� �������� �����. ��� �������� ���������� � ���������������� ������������ �����������. ����������� ����� ������������� ���� �������� ����������� ������� ����������� ������������. 1. ��� �������� ��-���������� �����������, ��������� �� ������� ���������� ����, ��� ��� ��������� � ������������������ �� ����������������. 2. ������ ����, ����� ��������������� ���������� - �������������� ����������, ������� ������ �������� ������������� ������������� � ������������ �� ��������, ���� �� �������, ��� ������������ ����� ���������� ���������� � �������� �������� �� - ������������ ����������� ��������������� �� ��. ��� �� �������� ��������� ���������, ��� ������ ��� ���� �� ������ ��������. ��� ���������� ������� ������� ��������, ������� ����� � ������ ��������� ������ ���������� Eiffel (��������� � ������� "����������� ������� � Eiffel"). ����������� ����� - ��� ������ ���� �� �������� �������������. EiffelStudio, ��������, ���������� ����������� ������������� ��������� �������� ��� ����, ����� �������� ������ � �� ����������� - ���� ��������, ������������ - � ������������ � ������������ ������� BON (the Business Object Notation - ������� ������ ��������). � ������������ � ���������� ����������� � �����������, EiffelStudio ��������� ������������ �������� � �������, �� ���� ��������� ����������� �������������, ��� �������� ��� ����������� ��������������, �������� ����� �� ����, �� ������ ������� �� ������� ���� �� ���� �������. �������������� ������� ��������� ���������� �� ������������ ��������, ���������� �� ��������� ������������: ���������������� �������� ������� � ������� ������������������ ���������� �������� CASE, ���������� �� UML, ����� ���� � �������������� ��������� � ���� "������� � �������" ("bubble-and-arrow"), � ����� � ��������� ������ ���������������� ������ ��� ����������. � Eiffel ����� ������������� ���������, ��������� ��������� � ������ �� ����� ����������. ����������� �����, ��� ������� ����������� �����, ������� ��������� ������������ (��. ������ "������� � ������� ����������� �����"), �������� ����������� ������ ������������ ���������, ������ �����������, ��������, � ����� "�������� ������������ ��" (��. ������ ����������). ����������� ������ ������� ���� � ���� ������������, ������� ������� ���������. ��� ������������������ ������� ������ Ariane-5 � ���� 1996 ���� (��������� ������� 500 ���. ��������), ��������� � ������������ �������������� ������������ ������ �� ������ Ariane-4, ��������� ������������� ��� ����������� ������������ - ��� ���� � ����������. ���������� ���������� ������������� � ���� ������ ���� �� ����� ����������������. 6. ��������� ���������� ��� ���� ���������� �������������� �� ��������� �������� ��������� �������������� ��������. ���������������� ����������� �� ��� ���� ������� ��-�� ���������� ������� ����������� ������� "����������". ������������� �������������� �� ��������� ��������� ���� ����� ������. 1. ������ ������������ ����� ��������, ������� ���������� ���������. 2. ���� ������������ ���������� ������ ���������� ��������� - �������������- ����� �������� ��� ������ �������� ����������, ���������� ��������. ��������� �� ���� �������� �������� ������������ �� ������ �����������, ������ ���� ��������� �������������� �������� ����� ������� ��������, ������������� � ���, ��� ��������� ����� ����� �����������. 3. ������ �� ���� �������� ����� ���� ����, �� ���� �� ��������� ���� ��������, ��������, �������������� �������� ����� ������������� ������������ (��� �������������� ���������). 4. ���� �������� �������� ����������� � ������������, ���������� ��� �����- ���. 5. ������������ ����� ����� ���� ����, ������� � ���������� � ���������� ������������. ����� �������� ������ ����������� ���� �������� �������: ���� � ����������. �������� �� ��, ��� ���� �������� ����� ������� ��������, ��� ��� �� ��������� ��� ��������� ��������, �� ���������� ������������, ����������� �������� ������� ������������, ��� ��� ���������� ����� �������� � ���� ������������-����������, � ���� ������������ �������� � ���������� � ���������� ������������. ������ ���������� "�����" �������� � ����? �������, ������, ��� ����� "������������" ������������ �� ���� � ������ ����������, ������� � ��� �������� � �������� ������ rescue, ��� � ��������� �������: read_next_character (f: FILE) -- ��������� ��������� ������ � ���������� last_character. -- ��� ������������� ��������� ����� ���� failed �������� True. require readable: file.readable local impossible: BOOLEAN do if impossible then failed := True else last_character := low_level_read_function (f) end rescue impossible := True retry end ���� ������ �������� ��� �����������, ������� ���������� ��� ��������� ����������: rescue � retry. ���������� retry ��������� ������ � ��������� rescue; �� ������ ����������� � ��������� ������� ������������ ��� ��������� ������������� ��������� ��������� (�����, ��� impossible � �������, ������� ���� ���������������� ��������� False ��� ������ �����). ��������, ��� ���������� failed � last_character �������� ���������� ����������� ������. ���� ������ �������� �������� �������������� ����������: � �������� ���������� �������� ��� ��������, ������� �� ������ �����������. ������������ ����� �����������, file.readable, ������� ��������� ������������� ����� � ������� ������� ��� ������ ��������. ����� �������, ������� ������ ���������, ��� ��� � ������� ����� ������� ������������. �������� �� ��, ��� ��� �������� ����� ������ ����������� �����, ������ ��������� ������������� ����� ��������� �������� ��������� ������� ����� (������ ��� ������������ ��� ������ ������� ������������ ������) ����� ��������� readable � ������� low_level_read_function. �������, ��� ��������� ������� ���� ���� � ��� ������, ���� ���� ��������, �� ������ ���������� ����������. ������� ��������� �������: local attempts: INTEGER do if attempts < Max_attempts then last_character := low_level_read_function (f) else failed := True end rescue attempts := attempts + 1 retry end � ���� �������� ����� ����������� Max_attempts ������� ����� �������. ������������� ������������ � ����� �������� ������� �� ���� ����: ��� ������ ��������� ���� ��������, � ������� �������, ��� ��� ������ �������� ������ ��� ���������� ���� failed � ������ ������������� ������� ���. ��� ��������� ���������� ����� �������: local attempts: INTEGER do last_character := low_level_read_function (f) rescue attempts := attempts + 1 if attempts < Max_attempts then retry end end ���� ������� �� �������� ���� failed. � ���� ������ ����� Max_attempts ��������� ������� ������������ �������� ��������� rescue ��� retry (��� ��� if �� ����� ����� else). ��� ���������� ���� ������������. ��� ���� ��������, ���������� � ������������ ����� �������� ���������� ������������. �������� rescue ����� ����������� ������ ������������ ��������� ������, ����� ���������� ������������ �, ��������, retry �� ����� ������� ������ ������� �������� ������� � ������������� ���������. ��� ���������, ������� ��� �������������� ��������� rescue - ���� ������ ��� ������������ ����������� ����������� � ����������� ������ - ������������ ����������: rescue default_rescue ��� ��������� default_rescue �������� �� ������ ANY, � ������� ��� ������� ��� ������ �� �����������; �� � ��������, ��������������� �� ����������, ������, ������������ ������ ����������������� �����������, ������ �������������� default_rescue (��������, ��������� ��������� �������� � ���� �� ����������� ������������) ����� �������, ����� ������ ��������������� ���������. � ������ ����� ��������� ���������� � Eiffel ����� ��������� �������, ���������� �� ������ ������ ���������, �� ���������� ������� ������������� �����������: ������������ ������ ������� ����������� ��� ���� ����. ���, � ����, �������, �������� ����������� ��������� �������������� �� ���������: ���������� �������� ���������� ���������, �������� ����� ������ ��� ���������� retry; ���� - ��� ������ ������, ��� ������� ������ ���� ������� ���������� � ���������� ������������. � ��������� ������ ������������ ����� �� ��������������� ���� �������� � ������� ���������� ������������ ��������� ���������� ���������. ��� ��������� ������ ��������� ����������. ���������� ����� ���� ����������� ��������� �������. 1. ���� ������������ (��������� rescue ����������� �� ����� ��� retry), ��� ������ ��� ���� �����������. 2. ��������� �����������, ���� ������ ��������� ���������� � ���������� ��- ����������. 3. ���������� ������������, ��. �����. 4. ������ ��: �������������� ������������, ���������� ��������� ������ ��� �������������� �������� ��� ������������, ���� ���� ������� ������ ���������� ��� ��������� ��� ������ ���������� �����. � ���� ����� �� ���������� ������ ���� "������������ ����� ���������" (��� � ������ C/C++), ��� ��� ��� ������ �� ����������� ���������� ������� ����������� ��������� � Eiffel. ��� ��������� ���������� � ��������� rescue ������ ������ �������� �������� ������ ��� ����������, ������� ���������. ��� ����� ���������� ����������� �� ������ EXCEPTIONS �� ���������� Kernel, ������� ������������� ����� �������, ��� exception, ������������ ��� ���������� ����������, � ���������� ����� (��. ������ "����������� ��������") ��� ���� �����, ����� ��� No_more_memory. ����� �� ������ ������������ ��������� ���������� ��-�������, �������� exception �� ������ �����������. ����� ������������ �����������, ����� ���� ���������� ���������� ��������; ������� �������� � ��������� rescue �������� ��������� ������������� ������������� ��������� ����������. ����� EXCEPTIONS ������������� ��������� �������� ��� ������ ��������� ������������ ����������, ����� ��� ��������� raise, ������� ����� ������� �������� "���������� ������������" � �����, ������� ����� ���� ��������� � ���������. ��������� ���������� ��������� ������������� �� �� Eiffel, ������� �� ������ ���������, �� � �������, �������� ������, ������� �� ������ ��������� ��� ���������� ��������, ������ ����� ��������� �� ������ ����� (������ ���������� ���, ��-�������, ������ �������� - ����. �����.) � ��������� � ���, ��� ��� �� ��������� ������� �� �������� � ������������ ��. 7. ���� ���������� �������������� �� ��������� ���� �������������� �� ��������� �������� ����� ���� ����� Eiffel. � ���������� � ��� ���������� ����������� ��� ����� ��� ������ ���������: 1. ��� ���� ����������� ������������ Eiffel ��� ������� � ��������������. �� ������� ������ ���������� ����� ���������� ��������. �� ����������� BON (Business Object Notation - ����. �����.), ������ ��������-���������������� ������� � �������������� ����� ��������� � ������������� ���������� ��� ���������. � ������� ����������� ����� ����� �������� �������� ������� ("� ����� ��������� ������ ������ ������� ���������?") ��� �������� �����-���� ������������ � ����������. � ���������� ���������� ������� (��. ������. "���������� ���������� �������") ��������, ��� ������ ����� ������������, � �� �����������, ������, ��������� ��������� ��� ������������ �������� ������� ������� ��� ������-���� ������������� ��� ������������ �������. 2. ����������� ������ ����� ��� �������� ����������, ��������� � �������������, - ��������� �����������, �������������, ������������ �����������, - � ������������ �� ���������� �������������, ������� ��������������� ������������� �����������. ����� �������� �������� ������ "������������ � ���������".

  • << ���������� ������ ��������� src / ������ ��������� >>

     ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ �����������
    ���:
    E-Mail:
    ���������:
    �����:




    ������:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    �������:

    �������� �� �����
    ���������� �� ���������
    Created 1996-2026 by Maxim Chirkov
    ��������, ����������, ����������