diff options
author | Ryan Johnson <rjohnson@mozilla.com> | 2021-04-29 16:16:42 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-29 16:16:42 -0700 |
commit | 95aca4b4d8fa62815d4bd412fff1a364f842814a (patch) | |
tree | 5e57661720fe9058d5c7db637e764800b50f9060 /files/uk/web/javascript/reference/statements/throw | |
parent | ee3b1c87e3c8e72ca130943eed260ad642246581 (diff) | |
download | translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.tar.gz translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.tar.bz2 translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.zip |
remove retired locales (#699)
Diffstat (limited to 'files/uk/web/javascript/reference/statements/throw')
-rw-r--r-- | files/uk/web/javascript/reference/statements/throw/index.html | 198 |
1 files changed, 0 insertions, 198 deletions
diff --git a/files/uk/web/javascript/reference/statements/throw/index.html b/files/uk/web/javascript/reference/statements/throw/index.html deleted file mode 100644 index 96b8974f40..0000000000 --- a/files/uk/web/javascript/reference/statements/throw/index.html +++ /dev/null @@ -1,198 +0,0 @@ ---- -title: throw -slug: Web/JavaScript/Reference/Statements/throw -tags: - - JavaScript - - throw - - виняток -translation_of: Web/JavaScript/Reference/Statements/throw ---- -<div>{{jsSidebar("Statements")}}</div> - -<p><strong>Оператор</strong> <strong><code>throw</code> </strong>викидає визначений користувачем виняток. Виконання поточної функції буде зупинено (оператори після <code>throw</code> не будуть виконані), а контроль буде передано до першого блоку <a href="/uk/docs/Web/JavaScript/Reference/Statements/try...catch"><code>catch</code></a> у стеку викликів. Якщо жодного блоку <code>catch</code> не існує, виконання програми переривається.</p> - -<div>{{EmbedInteractiveExample("pages/js/statement-throw.html")}}</div> - - - -<h2 id="Синтаксис">Синтаксис</h2> - -<pre class="syntaxbox">throw <em>expression</em>; </pre> - -<dl> - <dt><code>expression</code></dt> - <dd>Вираз, що викидається.</dd> -</dl> - -<h2 id="Опис">Опис</h2> - -<p>Скористайтеся оператором <code>throw</code>, щоб викинути виняток. Коли викидаєте виняток, <code>expression</code> вказує значення винятка. Кожна з наступних команд викидає виняток:</p> - -<pre class="brush: js">throw 'Error2'; // генерує виняток, що має рядкове значення -throw 42; // генерує виняток, що має значення 42 -throw true; // генерує виняток, що має значення true -throw new Error('Required'); // генерує об'єкт помилки з повідомленням Required -</pre> - -<p>Також зазначте, що на оператор <code>throw</code> впливає <a href="/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Automatic_semicolon_insertion">автоматична вставка крапки з комою (automatic semicolon insertion, ASI)</a>, оскільки між ключовим словом <code>throw</code> та виразом не дозволяється вставляти символи закінчення рядка.</p> - -<h2 id="Приклади">Приклади</h2> - -<h3 id="Викидання_обєкта">Викидання об'єкта</h3> - -<p>Ви можете вказати об'єкт, коли викидаєте виняток. Після цього ви можете звертатися до властивостей об'єкта у блоці <code>catch</code>. Наступний приклад створює об'єкт типу <code>UserException</code>, і далі використовує його з оператором <code>throw</code>.</p> - -<pre class="brush: js">function UserException(message) { - this.message = message; - this.name = 'UserException'; -} -function getMonthName(mo) { - mo = mo - 1; // Припасувати номер місяця до індексу масиву (1 = Січ, 12 = Груд) - var months = ['Січ', 'Лют', 'Берез', 'Квіт', 'Трав', 'Черв', 'Лип', - 'Серп', 'Верес', 'Жовт', 'Листоп', 'Груд']; - if (months[mo] !== undefined) { - return months[mo]; - } else { - throw new UserException('InvalidMonthNo'); - } -} - -try { - // команди до виконання - var myMonth = 15; // 15 не входить у визначені межі й викликає виняток - var monthName = getMonthName(myMonth); -} catch (e) { - monthName = 'unknown'; - console.error(e.message, e.name); // передати об'єкт винятку до обробника помилок -} -</pre> - -<h3 id="Ще_один_приклад_викидання_обєкта">Ще один приклад викидання об'єкта</h3> - -<p>Наступний приклад перевіряє наданий текстовий рядок на формат поштового індексу. Якщо поштовий індекс використовує неправильний формат, оператор throw викидає виняток, створюючи об'єкт типу <code>ZipCodeFormatException</code>.</p> - -<pre class="brush: js">/* - * Створює об'єкт ZipCode. - * - * Дозволені формати поштового індексу: - * 12345 - * 12345-6789 - * 123456789 - * 12345 6789 - * - * Якщо аргумент, переданий до конструктора ZipCode, не відповідає - * жодному з цих шаблонів, викидається виняток. - */ - -function ZipCode(zip) { - zip = new String(zip); - pattern = /[0-9]{5}([- ]?[0-9]{4})?/; - if (pattern.test(zip)) { - // значення поштового індексу буде першим збігом у рядку - this.value = zip.match(pattern)[0]; - this.valueOf = function() { - return this.value - }; - this.toString = function() { - return String(this.value) - }; - } else { - throw new ZipCodeFormatException(zip); - } -} - -function ZipCodeFormatException(value) { - this.value = value; - this.message = 'не відповідає очікуваному формату поштового індексу'; - this.toString = function() { - return this.value + this.message; - }; -} - -/* - * Це можна вставити у скрипт, який перевіряє дані адреси - * на відповідність формату адрес. - */ - -const ZIPCODE_INVALID = -1; -const ZIPCODE_UNKNOWN_ERROR = -2; - -function verifyZipCode(z) { - try { - z = new ZipCode(z); - } catch (e) { - if (e instanceof ZipCodeFormatException) { - return ZIPCODE_INVALID; - } else { - return ZIPCODE_UNKNOWN_ERROR; - } - } - return z; -} - -a = verifyZipCode(95060); // повертає 95060 -b = verifyZipCode(9560); // повертає -1 -c = verifyZipCode('a'); // повертає -1 -d = verifyZipCode('95060'); // повертає 95060 -e = verifyZipCode('95060 1234'); // повертає 95060 1234 -</pre> - -<h3 id="Повторне_викидання_винятку">Повторне викидання винятку</h3> - -<p>Ви можете скористатись оператором <code>throw</code>, щоб повторно викинути виняток після того, як перехопите його. Наступний приклад перехоплює виняток з числовим значенням та повторно викидає його, якщо значення більше за 50. Повторно викинутий виняток спливає наверх до замикаючої функції або на верхній рівень, так, що користувач його бачить.</p> - -<pre class="brush: js">try { - throw n; // викидає виняток з числовим значенням -} catch (e) { - if (e <= 50) { - // команди для обробки винятків 1-50 - } else { - // неможливо обробити цей виняток, тому викидаємо його повторно - throw e; - } -} -</pre> - -<h2 id="Специфікації">Специфікації</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Специфікація</th> - <th scope="col">Статус</th> - <th scope="col">Коментар</th> - </tr> - <tr> - <td>{{SpecName('ES3')}}</td> - <td>{{Spec2('ES3')}}</td> - <td>Початкове визначення. Реалізоване у JavaScript 1.4</td> - </tr> - <tr> - <td>{{SpecName('ES5.1', '#sec-12.13', 'throw statement')}}</td> - <td>{{Spec2('ES5.1')}}</td> - <td></td> - </tr> - <tr> - <td>{{SpecName('ES6', '#sec-throw-statement', 'throw statement')}}</td> - <td>{{Spec2('ES6')}}</td> - <td></td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-throw-statement', 'throw statement')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td></td> - </tr> - </tbody> -</table> - -<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2> - - - -<p>{{Compat("javascript.statements.throw")}}</p> - -<h2 id="Див._також">Див. також</h2> - -<ul> - <li><a href="/uk/docs/Web/JavaScript/Reference/Statements/try...catch"><code>try...catch</code></a></li> -</ul> |