Over het error-object
Elke browser beschikt over het JavaScript-object error, dat informatie bevat over JavaScript-fouten in het document dat door de browser wordt getoond. Het object wordt actief als er een fout in een JavaScript zit.
error heeft twee eigenschappen, die hieronder worden genoemd. Er zijn geen methodes.
- error.name bevat de soort fout terug. De mogelijke waarden zijn:
- EvalError Deprecated (afgeraden), gebruik in plaats daarvan SyntaxError.
- RangeError Een getal is "buiten bereik" geraakt, bijvoorbeeld bij een array-index.
- ReferenceError Er is onjuist gerefereerd aan een constante, variabele, function, enz.
- SyntaxError Er is onjuiste syntax in de JavaScript-code gevonden. Meestal is dat een tikfout in de code.
- TypeError Er is een type-fout opgetreden. Denk hier bijvoorbeeld aan twee strings die met elkaar worden vermenigvuldigd of een function die wordt gebruikt als consante.
- URIError Er is iets fout gegaan bij de uitvoering vanencodeURI() (zie verder).
- error.message Bevat een foutmelding. Dat kan een getal zijn, of een string. De foutmelding kun je zelf instellen
met throw(). Die gebruik je samen met try { .... } catch(err) { .... }. Zie het item JavaScript debuggen II: Error handler met try en catch.
Als je in het catch() code blok terecht, komt kun je aan de hand van error.name je eigen foutmelding maken en die later op het scherm zetten of naar het JavaScript-console sturen.
Er zijn meer eigenschappen dan de hierboven genoemde en ook een paar methodes. Die blijven hier onbesproken, omdat ze niet in de standaarden staan. Het merendeel van deze eigenschappen en methodes werkt niet in alle browsers.
encodeURI()
De function encodeURI() codeert een webadres. Een webadres moet altijd worden verstuurd als ASCII-karakters. Niet-ASCII-karakters
moeten eerst worden omgezet in hexadecimale code. Dat is een procentteken gevolgd door een hexadecimaal getal. Een karakter
wordt zo omgezet in één of meer haxadecimale getallen. Zo is een spatie (ASCII nr. 32) gelijk aan %20. ó
wordt %C3%B3.
Webadressen die niet-ASCII karakters bevatten moeten dus eerst worden gecodeerd. Zo wordt mijn auto.html?naam=móóiste&kleur=rood omgezet in mijn%20auto.html?naam=m%C3%B3%C3%B3iste&kleur=rood.
Bepaalde karakters worden door encodeURI() niet meegenomen, omdat die betekenis hebben binnen een geldigwebadres.
Dit zijn: , / ? : @ & = + $ * #.
Decoderen doe je met decodeURI().
Als je de speciale karakters toch wilt coderen, gebruik je encodeURIComponent(). Decoderen doe je dan met decodeURIComponent().