[doc] misc. fix & improvements
[scilab.git] / scilab / modules / core / help / ru_RU / error_handling / error.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4  * Copyright (C) - INRIA
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  * Copyright (C) 2018 - Samuel GOUGEON
7  *
8  * This file is hereby licensed under the terms of the GNU GPL v2.0,
9  * pursuant to article 5.3.4 of the CeCILL v.2.1.
10  * This file was originally licensed under the terms of the CeCILL v2.1,
11  * and continues to be available under such terms.
12  * For more information, see the COPYING file which you should have received
13  * along with this program.
14  *
15  -->
16 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
17           xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
18           xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
19           xml:lang="ru" xml:id="error">
20     <refnamediv>
21         <refname>error</refname>
22         <refpurpose>сообщает об ошибке во время выполнения</refpurpose>
23     </refnamediv>
24     <refsynopsisdiv>
25         <title>Синтаксис</title>
26         <synopsis>
27             error(message)
28             error(message, n)
29             error(n, message)
30         </synopsis>
31     </refsynopsisdiv>
32     <refsection>
33         <title>Аргументы</title>
34         <variablelist>
35             <varlistentry>
36                 <term>message</term>
37                 <listitem>
38                     <para>
39                         Вектор символьных значений. Сообщение об ошибке для вывода на экран. Каждый компонент
40                         выводится на отдельной строчке. Хорошей практикой является обеспечение перевода
41                         сообщения об ошибке с помощью <literal>gettext(…)</literal>.
42                     </para>
43                 </listitem>
44             </varlistentry>
45             <varlistentry>
46                 <term>n</term>
47                 <listitem>
48                     <para>
49                         целое число > 0: числовой идентификатор приписанный к ошибке. По умолчанию = 10000.
50                         В то время, как сообщение часто переводится на язык текущей сессии,
51                         <varname>n</varname> позволяет проверит ошибку способом, независимым от языка.
52                     </para>
53                 </listitem>
54             </varlistentry>
55         </variablelist>
56     </refsection>
57     <refsection>
58         <title>Описание</title>
59         <para>
60             Функция <literal>error(…)</literal> позволяет выдавать сообщение об ошибке и обрабатывать
61             ошибку. По умолчанию <literal>error</literal>
62             <itemizedlist>
63                 <listitem>
64                     прекращает текущее выполнение,
65                 </listitem>
66                 <listitem>
67                     отображает в командном окне рекурсивное дерево вызовов, приводящее к ошибке,
68                 </listitem>
69                 <listitem>
70                     выводит на экран сообщение об ошибке <varname>message</varname>,
71                 </listitem>
72                 <listitem>
73                     и возвращается на уровень командной строки.
74                 </listitem>
75             </itemizedlist>
76         </para>
77         <para>
78             Чтобы обработать ошибку, не останавливая выполнение, ее можно поймать, используя
79             <literal>try … catch</literal> или <literal>execstr(…,'errcatch')</literal>
80             и для проверки его с помощью <literal>lasterror(…)</literal>..
81         </para>
82         <para>
83             <literal>error(message)</literal> выводит на экран символьную строку, содержащуюся в
84             <literal>message</literal>.
85         </para>
86         <para>
87             <literal>error(message,n)</literal> выводит на экран символьную строку, содержащуюся в
88             <literal>message</literal>. Номер, связанный с сообщением об ошибке указывается с помощью
89             <literal>n</literal>.
90         </para>
91         <para>
92             См. <link linkend="error_table">таблица ошибок</link>, где перечислены сообщения об
93             ошибках.
94         </para>
95     </refsection>
96     <refsection>
97         <title>Примеры</title>
98         <programlisting role="example"><![CDATA[
99 function test(a)
100     if argn(2)~=1
101         msg = gettext("%s: Wrong number of input arguments: %d expected.\n")
102         error(msprintf(msg, "test", 1))
103     end
104 endfunction
105 function myfun()
106     a = 1;
107     test()
108 endfunction
109
110 // ----------
111
112 error(['A multi line' 'error message'])
113 error(500, 'Error: my error message')
114 [m, n] = lasterror()
115
116 test()
117 myfun()
118     ]]></programlisting>
119     <screen><![CDATA[
120 --> error(['A multi line' 'error message'])
121
122 A multi line
123 error message
124
125 --> error(500, 'Error: my error message')
126
127 Error: my error message
128
129 --> [m, n] = lasterror()
130  n  =
131    500.
132  m  =
133  Error: my error message
134
135 --> test()
136 на строке     4 функции test
137
138 test: Неверное количество входных аргументов: ожидалось 1.
139
140 --> myfun()
141 на строке     4 функции test
142 на строке     3 функции myfun
143
144 test: Неверное количество входных аргументов: ожидалось 1.
145 ]]></screen>
146     </refsection>
147     <refsection role="see also">
148         <title>Смотрите также</title>
149         <simplelist type="inline">
150             <member>
151                 <link linkend="lasterror">lasterror</link>
152             </member>
153             <member>
154                 <link linkend="error_table">таблица ошибок</link>
155             </member>
156             <member>
157                 <link linkend="gettext">gettext</link>
158             </member>
159             <member>
160                 <link linkend="warning">warning</link>
161             </member>
162             <member>
163                 <link linkend="try">try</link>
164             </member>
165             <member>
166                 <link linkend="execstr">execstr</link>
167             </member>
168             <member>
169                 <link linkend="where">where</link>
170             </member>
171         </simplelist>
172     </refsection>
173     <refsection>
174         <title>История</title>
175         <revhistory>
176             <revision>
177                 <revnumber>5.0.0</revnumber>
178                 <revremark>
179                     <literal>error(n, message)</literal> syntax introduced.
180                 </revremark>
181             </revision>
182             <revision>
183                 <revnumber>5.4.0</revnumber>
184                 <revremark>
185                     Функция <literal>error</literal> может принимать вектор строк в качестве входного аргумента.
186                 </revremark>
187             </revision>
188             <revision>
189                 <revnumber>6.0.0</revnumber>
190                 <revremark>
191                     Синтаксисы <literal>error(n)</literal> и <literal>error(n, pos)</literal> более
192                     не поддерживаются: теперь обязательно указывать напрямую сообщение об ошибке. Нет
193                     более никакого абсолютного идентификатора ошибки.
194                 </revremark>
195             </revision>
196         </revhistory>
197     </refsection>
198 </refentry>