aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/javascript/reference/instructions/throw/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/fr/web/javascript/reference/instructions/throw/index.html')
-rw-r--r--files/fr/web/javascript/reference/instructions/throw/index.html201
1 files changed, 0 insertions, 201 deletions
diff --git a/files/fr/web/javascript/reference/instructions/throw/index.html b/files/fr/web/javascript/reference/instructions/throw/index.html
deleted file mode 100644
index 1465d2f460..0000000000
--- a/files/fr/web/javascript/reference/instructions/throw/index.html
+++ /dev/null
@@ -1,201 +0,0 @@
----
-title: throw
-slug: Web/JavaScript/Reference/Instructions/throw
-tags:
- - Exception
- - JavaScript
- - Reference
- - Statement
-translation_of: Web/JavaScript/Reference/Statements/throw
----
-<div>{{jsSidebar("Statements")}}</div>
-
-<p>L'instruction <strong><code>throw</code></strong> permet de lever une exception définie par l'utilisateur. L'exécution de la fonction courante sera stoppée (les instructions situées après l'instruction <code>throw</code> ne seront pas exécutées) et le contrôle sera passé au premier bloc {{jsxref("Instructions/try...catch","catch")}} de la pile d'appels. Si aucun bloc <code>catch</code> ne se trouve dans les fonctions de la pile d'appels, le programme sera terminé.</p>
-
-<div>{{EmbedInteractiveExample("pages/js/statement-throw.html")}}</div>
-
-<p class="hidden">Le code source de cet exemple interactif est disponible dans un dépôt GitHub. Si vous souhaitez contribuez à ces exemples, n'hésitez pas à cloner <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> et à envoyer une <em>pull request</em> !</p>
-
-<h2 id="Syntaxe">Syntaxe</h2>
-
-<pre class="syntaxbox">throw <em>expression</em>; </pre>
-
-<dl>
- <dt><code>expression</code></dt>
- <dd>L'expression qui fournit l'exception à lever.</dd>
-</dl>
-
-<h2 id="Description">Description</h2>
-
-<p>L'instruction <code>throw</code> permet de lever (<em>throw</em> en anglais) une exception. Lorsqu'on lève une exception, <code>expression</code> fournit la valeur de l'exception. Chacune des instructions ci-après permet de lever une exception :</p>
-
-<pre class="brush: js">throw "monErreur"; // génère une exception étant une chaîne de caractères
-throw 42; // génère une exception ayant la valeur 42
-throw true; // génère une exception ayant la valeur true
-throw new Error("Obligatoire"); // génère un objet Error avec le message "Obligatoire"</pre>
-
-<p>On notera également que l'instruction <code>throw</code> est affectée par {{jsxref("Grammaire_lexicale","l'insertion automatique de point-virgule","#Insertion_automatique_de_points-virgules",1)}} car il n'est pas permis d'avoir un caractère de fin de ligne entre le mot-clé <code>throw</code> et l'expression.</p>
-
-<h2 id="Exemples">Exemples</h2>
-
-<h3 id="Lever_une_exception_qui_est_un_objet">Lever une exception qui est un objet</h3>
-
-<p>Il est possible de lever une exception qui est un objet et de faire référence aux propriétés de cet objet au sein du bloc <code>catch</code>. Dans l'exemple suivant, on crée un objet <code>monException</code> du type <code>ExceptionUtilisateur</code> puis on utilise cet objet avec une instruction <code>throw</code>.</p>
-
-<pre class="brush: js">function ExceptionUtilisateur(message) {
- this.message = message;
- this.name = "ExceptionUtilisateur";
-}
-function getNomMois(mo) {
- mo = mo-1; // Adjust month number for array index (1=Jan, 12=Dec)
- var mois = ["Jan", "Fév", "Mar", "Avr", "Mai", "Juin", "Juil",
- "Août", "Sept", "Oct", "Nov", "Déc"];
- if (mois[mo] !== undefined) {
- return mois[mo];
- } else {
- throw new ExceptionUtilisateur("Numéro de mois invalide");
- }
-}
-
-try {
- // les instructions à tenter
- var monMois = 15; // 15 est en dehors des limites prévues
- var nomMois = getNomMois(monMois);
-} catch (e) {
- nomMois = "unknown";
- console.error(e.message, e.name); // on passe les caractéristiques de l'exception
- // à un gestionnaire d'erreur
-}
-</pre>
-
-<h3 id="Deuxième_exemple_avec_un_objet">Deuxième exemple avec un objet</h3>
-
-<p>Ici, on cherche à valider une chaîne de caractères représentant un code postal américain. Si le format utilisé est invalide, cela provoquera une exception avec un objet du type <code>ZipFormatIncorrectException</code>. (Le mot-clé {{jsxref("Instructions/const","const")}} introduit avec ECMAScript 6 est utilisé dans cet exemple).</p>
-
-<pre class="brush: js">/*
- * Crée un objet ZipCode.
- *
- * Les formats acceptés sont :
- * 12345
- * 12345-6789
- * 123456789
- * 12345 6789
- *
- * Si l'argument passé au constructeur ZipCode n'est pas conforme
- * à un de ces formats, une exception sera levée.
- */
-
-function ZipCode(zip) {
- zip = new String(zip);
- pattern = /[0-9]{5}([- ]?[0-9]{4})?/;
- if (pattern.test(zip)) {
- // la valeur du code sera la première correspondance
- // dans la chaîne
- this.value = zip.match(pattern)[0];
- this.valueOf = function() {
- return this.value
- };
- this.toString = function() {
- return String(this.value)
- };
- } else {
- throw new ZipFormatIncorrectException(zip);
- }
-}
-
-function ZipFormatIncorrectException(value) {
- this.value = value;
- this.message = "le format n'est pas conforme";
- this.toString = function() {
- return this.value + this.message;
- };
-}
-
-/*
- * Cette fonction pourrait être utilisée dans un script
- * pour valider des adresses
- */
-
-const ZIPCODE_INVALID = -1;
-const ZIPCODE_UNKNOWN_ERROR = -2;
-
-function vérifierZipCode(z) {
- try {
- z = new ZipCode(z);
- } catch (e) {
- if (e instanceof ZipFormatIncorrectException) {
- return ZIPCODE_INVALID;
- } else {
- return ZIPCODE_UNKNOWN_ERROR;
- }
- }
- return z;
-}
-
-a = vérifierZipCode(95060); // renvoie 95060
-b = vérifierZipCode(9560); // renvoie -1
-c = vérifierZipCode("a"); // renvoie -1
-d = vérifierZipCode("95060"); // renvoie 95060
-e = vérifierZipCode("95060 1234"); // renvoie 95060 1234
-</pre>
-
-<h3 id="Propager_une_exception">Propager une exception</h3>
-
-<p>L'instruction <code>throw</code> peut être utilisée pour transmettre une exception qui aurait été interceptée avec {{jsxref("Instructions/try...catch","catch")}}. Dans l'exemple suivant, on intercepte une exception avec une valeur numérique et on propage l'exception si la valeur est supérieure à 50. L'exception qui est levée se propage dans la fonction appelante ou au niveau le plus haut, visible par l'utilisateur.</p>
-
-<pre class="brush: js">try {
- throw n; // lève une exception avec une valeur numérique
-} catch (e) {
- if (e &lt;= 50) {
- // des instructions pour gérer les cas entre 1 et 50
- } else {
- // ce cas ne peut pas être géré maintenant, on transmet l'exception
- throw e;
- }
-}
-</pre>
-
-<h2 id="Spécifications">Spécifications</h2>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <th scope="col">Spécification</th>
- <th scope="col">État</th>
- <th scope="col">Commentaires</th>
- </tr>
- <tr>
- <td>{{SpecName('ES3')}}</td>
- <td>{{Spec2('ES3')}}</td>
- <td>Définition initiale. Implémentée avec 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="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
-
-<div class="hidden">Ce tableau de compatibilité a été généré à partir de données structurées. Si vous souhaitez contribuer à ces données, n'hésitez pas à envoyer une <em>pull request</em> sur <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</div>
-
-<p>{{Compat("javascript.statements.throw")}}</p>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li>{{jsxref("Instructions/try...catch","try...catch")}}</li>
- <li>{{jsxref("Error")}}</li>
-</ul>