1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
---
title: RangeError
slug: Web/JavaScript/Reference/Objets_globaux/RangeError
tags:
- Error
- JavaScript
- RangeError
- Reference
translation_of: Web/JavaScript/Reference/Global_Objects/RangeError
---
<div>{{JSRef}}</div>
<p>L'objet <code><strong>RangeError</strong></code> permet d'indiquer une erreur lorsqu'une valeur fournie n'appartient pas à l'intervalle autorisé.</p>
<h2 id="Syntaxe">Syntaxe</h2>
<pre class="syntaxbox">new RangeError([<var>message</var>[, nomFichier[, numLigne]]])</pre>
<h3 id="Paramètres">Paramètres</h3>
<dl>
<dt><code>message</code></dt>
<dd>Paramètre optionnel. Une description lisible (humainement) de l'erreur.</dd>
</dl>
<dl>
<dt><code>nomFichier</code> {{non-standard_inline}}</dt>
<dd>Paramètre optionnel. Le nom du fichier contenant le code à l'origine de cette exception.</dd>
</dl>
<dl>
<dt><code>numLigne </code>{{non-standard_inline}}</dt>
<dd>Paramètre optionnel. Le numéro de la ligne du code à l'origine de cette exception.</dd>
</dl>
<h2 id="Description">Description</h2>
<p>Une exception <code>RangeError</code> est levée lorsqu'une valeur est passée comme argument à une fonction qui n'accepte pas de valeurs dans cet intervalle. Par exemple, cela peut être le cas quand on souhaite créer un tableau avec une longueur illégale via {{jsxref("Array")}} ou lorsqu'on passe des valeurs incorrectes aux méthodes {{jsxref("Number.toExponential()")}}, {{jsxref("Number.toFixed()")}} ou {{jsxref("Number.toPrecision()")}}. Cette exception n'est pas limitée aux problèmes d'intervalles numériques et peuvent également se produire lorsqu'on passe une valeur non autorisée à {{jsxref("String.prototype.normalize()")}}.</p>
<h2 id="Propriétés">Propriétés</h2>
<dl>
<dt>{{jsxref("RangeError.prototype")}}</dt>
<dd>Cette propriété permet d'ajouter des propriétés à toutes les instances de <code>RangeError</code>.</dd>
</dl>
<h2 id="Méthodes">Méthodes</h2>
<p>L'objet global <code>RangeError</code> ne contient pas de méthodes propres mais héritent de certaines méthodes via la chaîne de prototypes.</p>
<h2 id="Instances_de_RangeError">Instances de <code>RangeError</code></h2>
<h3 id="Propriétés_2">Propriétés</h3>
<p>{{ page('/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/RangeError/prototype','Properties') }}</p>
<h3 id="Méthodes_2">Méthodes</h3>
<p>{{ page('/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/RangeError/prototype','Methods') }}</p>
<h2 id="Exemples">Exemples</h2>
<h3 id="Utiliser_RangeError">Utiliser <code>RangeError</code></h3>
<pre class="brush: js">var MIN = 200;
var MAX = 300;
var vérifier = function( num ) {
if( num < MIN || num > MAX ) {
throw new RangeError( "Le paramètre doit être compris entre " + MIN + " et " + MAX );
}
};
try {
vérifier(500);
}
catch (e) {
if (e instanceof RangeError ){
// On gère ce qui se passe en cas d'erreur
}
}</pre>
<h3 id="Utiliser_RangeError_avec_des_valeurs_non-numériques">Utiliser <code>RangeError</code> avec des valeurs non-numériques</h3>
<pre class="brush: js">function verifier(valeur){
if(["pomme", "banane", "carotte"].includes(valeur) === false){
throw new RangeError("L'argument n'est pas un fruit parmi pomme / banane ou carotte.");
}
}
try {
verifier("chou");
}
catch(erreur) {
if(erreur instanceof RangeError){
//On gère ce qui se passe en cas d'erreur
}
}
</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.</td>
</tr>
<tr>
<td>{{SpecName('ES5.1', '#sec-15.11.6.2', 'RangeError')}}</td>
<td>{{Spec2('ES5.1')}}</td>
<td> </td>
</tr>
<tr>
<td>{{SpecName('ES6', '#sec-native-error-types-used-in-this-standard-rangeerror', 'RangeError')}}</td>
<td>{{Spec2('ES6')}}</td>
<td> </td>
</tr>
<tr>
<td>{{SpecName('ESDraft', '#sec-native-error-types-used-in-this-standard-rangeerror', 'RangeError')}}</td>
<td>{{Spec2('ESDraft')}}</td>
<td> </td>
</tr>
</tbody>
</table>
<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
<div>
<div class="hidden">Le tableau de compatibilité de cette page a été généré à partir de données structurées. Si vous souhaitez contribuer à ces données, n'hésitez pas à consulter <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> et à nous envoyer une <em>pull request</em>.</div>
<p>{{Compat("javascript.builtins.RangeError")}}</p>
</div>
<h2 id="Voir_aussi">Voir aussi</h2>
<ul>
<li>{{jsxref("Error")}}</li>
<li>{{jsxref("Array")}}</li>
<li>{{jsxref("RangeError.prototype")}}</li>
<li>{{jsxref("Number.toExponential()")}}</li>
<li>{{jsxref("Number.toFixed()")}}</li>
<li>{{jsxref("Number.toPrecision()")}}</li>
<li>{{jsxref("String.prototype.normalize()")}}</li>
</ul>
|