From bf8e099b9c8b3c60d60b3712b4fc97b052c39887 Mon Sep 17 00:00:00 2001 From: julieng Date: Tue, 3 Aug 2021 08:03:23 +0200 Subject: convert content to md --- .../javascript/reference/statements/throw/index.md | 120 +++++++++------------ 1 file changed, 49 insertions(+), 71 deletions(-) (limited to 'files/fr/web/javascript/reference/statements/throw') diff --git a/files/fr/web/javascript/reference/statements/throw/index.md b/files/fr/web/javascript/reference/statements/throw/index.md index 4f250245c0..ea94fd6e09 100644 --- a/files/fr/web/javascript/reference/statements/throw/index.md +++ b/files/fr/web/javascript/reference/statements/throw/index.md @@ -9,39 +9,40 @@ tags: translation_of: Web/JavaScript/Reference/Statements/throw original_slug: Web/JavaScript/Reference/Instructions/throw --- -
{{jsSidebar("Statements")}}
+{{jsSidebar("Statements")}} -

L'instruction throw 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 throw 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 catch ne se trouve dans les fonctions de la pile d'appels, le programme sera terminé.

+L'instruction **`throw`** 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 `throw` 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 `catch` ne se trouve dans les fonctions de la pile d'appels, le programme sera terminé. -
{{EmbedInteractiveExample("pages/js/statement-throw.html")}}
+{{EmbedInteractiveExample("pages/js/statement-throw.html")}} -

Syntaxe

+## Syntaxe -
throw expression; 
+ throw expression; -
-
expression
-
L'expression qui fournit l'exception à lever.
-
+- `expression` + - : L'expression qui fournit l'exception à lever. -

Description

+## Description -

L'instruction throw permet de lever (throw en anglais) une exception. Lorsqu'on lève une exception, expression fournit la valeur de l'exception. Chacune des instructions ci-après permet de lever une exception :

+L'instruction `throw` permet de lever (_throw_ en anglais) une exception. Lorsqu'on lève une exception, `expression` fournit la valeur de l'exception. Chacune des instructions ci-après permet de lever une exception : -
throw "monErreur"; // génère une exception étant une chaîne de caractères
+```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"
+throw new Error("Obligatoire"); // génère un objet Error avec le message "Obligatoire" +``` -

On notera également que l'instruction throw 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é throw et l'expression.

+On notera également que l'instruction `throw` 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é `throw` et l'expression. -

Exemples

+## Exemples -

Lever une exception qui est un objet

+### Lever une exception qui est un objet -

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 catch. Dans l'exemple suivant, on crée un objet monException du type ExceptionUtilisateur puis on utilise cet objet avec une instruction throw.

+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 `catch`. Dans l'exemple suivant, on crée un objet `monException` du type `ExceptionUtilisateur` puis on utilise cet objet avec une instruction `throw`. -
function ExceptionUtilisateur(message) {
+```js
+function ExceptionUtilisateur(message) {
    this.message = message;
    this.name = "ExceptionUtilisateur";
 }
@@ -65,13 +66,14 @@ try {
    console.error(e.message, e.name); // on passe les caractéristiques de l'exception
                                      // à un gestionnaire d'erreur
 }
-
+``` -

Deuxième exemple avec un objet

+### Deuxième exemple avec un objet -

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 ZipFormatIncorrectException. (Le mot-clé {{jsxref("Instructions/const","const")}} introduit avec ECMAScript 6 est utilisé dans cet exemple).

+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 `ZipFormatIncorrectException`. (Le mot-clé {{jsxref("Instructions/const","const")}} introduit avec ECMAScript 6 est utilisé dans cet exemple). -
/*
+```js
+/*
  * Crée un objet ZipCode.
  *
  * Les formats acceptés sont :
@@ -136,63 +138,39 @@ 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
-
+``` -

Propager une exception

+### Propager une exception -

L'instruction throw 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.

+L'instruction `throw` 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. -
try {
+```js
+try {
    throw n; // lève une exception avec une valeur numérique
 } catch (e) {
-   if (e <= 50) {
+   if (e <= 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;
    }
 }
-
- -

Spécifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('ES3')}}{{Spec2('ES3')}}Définition initiale. Implémentée avec JavaScript 1.4
{{SpecName('ES5.1', '#sec-12.13', 'throw statement')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-throw-statement', 'throw statement')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-throw-statement', 'throw statement')}}{{Spec2('ESDraft')}}
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.statements.throw")}}

- -

Voir aussi

- - +``` + +## Spécifications + +| Spécification | État | Commentaires | +| ---------------------------------------------------------------------------------------- | ---------------------------- | ---------------------------------------------------- | +| {{SpecName('ES3')}} | {{Spec2('ES3')}} | Définition initiale. Implémentée avec JavaScript 1.4 | +| {{SpecName('ES5.1', '#sec-12.13', 'throw statement')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-throw-statement', 'throw statement')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-throw-statement', 'throw statement')}} | {{Spec2('ESDraft')}} | | + +## Compatibilité des navigateurs + +{{Compat("javascript.statements.throw")}} + +## Voir aussi + +- {{jsxref("Instructions/try...catch","try...catch")}} +- {{jsxref("Error")}} -- cgit v1.2.3-54-g00ecf