Programmeren in JavaScript/Errors

Uit Wikibooks
Naar navigatie springen Naar zoeken springen

Programmeren in JavaScript

Inhoudsopgave

Basiscursus

  1. Basis
  2. Plaats binnen HTML
  3. Variabelen
  4. Operatoren
  5. Conditionele statements
  6. Lussen
  7. Functies
  8. Events
  9. Errors

Objecten
DOM

Appendices

Errors of fouten komen heel vaak voor in script. Soms is het een fout in de code en soms is het een fout van de gebruiker. Daarom moet je aan errorhandling doen of beter gezegd zorgen dat je fouten er niet voor zullen zorgen dat je script blokkeert door die fout.

try en catch[bewerken]

try en catch zijn bedoeld om fouten op te vangen. Met het try blok probeer je de code en met het catch blok vang je mogelijk fouten op. In het volgende voorbeeld is de code fout.

JavaScript-code: try en catch

	document.write("Dit gebeurt er voor de nonsensfunctie().<br />");
	nonsensfunctie();
	document.write("Dit gebeurt er achter de nonsensfunctie().<br />");

Met als uitvoer:

Dit gebeurt er voor de nonsensfunctie().

Er bestaat namelijk geen nonsensfunctie(), als je dit zou uitvoeren in een browser, zal de browser stoppen met de pagina te verwerken en krijg je alleen maar te zien wat er voor de nonsensfunctie() was. Alles wat er achter komt zal niet op het scherm worden getoond. We gaan nu de fout opvangen met try en catch.

JavaScript-code: try en catch

	document.write("Dit gebeurt er voor de nonsensfunctie().<br />");

	try {
		nonsensefunctie();
	} catch(fout) {
		document.write("Er is een fout opgetreden.<br />");
	}
	
	document.write("Dit gebeurt er achter de nonsensfunctie().");

Met als uitvoer:

Dit gebeurt er voor de nonsensfunctie().
Er is een fout opgetreden.
Dit gebeurt er achter de nonsensfunctie().

Zoals je ziet wordt de fout opgevangen door catch. Alles wat in het catch blok voorkomt zal alleen maar gebeuren wanneer er een fout is. fout die staat in de catch is een variabele die een object bevat waarmee je enkele dingen mee kunt doen. Zoals bijvoorbeeld achterhalen wat de fout precies is. Als je het volgende zou doen in de catch:

JavaScript-code: try en catch

		document.write("Er is een fout gebeurd. Namelijk " + fout.discription + ".<br />");

Dan krijg je het volgende:

Dit gebeurt er voor de nonsensfunctie().
Er is een fout gebeurd. Namelijk undefined.
Dit gebeurt er achter de nonsensfunctie().

Met fout.discription kun je de omschrijving van de fout opzoeken. In dit geval is het undefined en dit komt overeen met onze fout, we hebben namelijk een niet bestaande functie gebruikt.

throw[bewerken]

Met throw kun je je eigen foutmeldingen maken. Met throw "gooi" je een foutbericht naar de catch die het verder zal afhandelen. Dat kan een string, een integer, een boolean of een object zijn.

JavaScript-code: try en catch

	var x = prompt("Geef een getal van 1 tot 10","");
	
	try{ 
		if(x > 10){
			throw "Uw getal is te hoog!";
		}else if(x < 0){
			throw "Uw getal is te laag!";
		}
		
	}catch(fout){
		document.write(fout);
	}

finally[bewerken]

Naast try en catch is er ook nog het finally blok. Alles wat in het finally blok voorkomt zal sowieso worden uitgevoerd. Het maakt niet uit of er wel of niet fouten zijn voorgekomen in het try blok.

JavaScript-code: finally

	document.write("Dit gebeurt er voor de nonsensfunctie().<br />");

	try {
		nonsensefunctie();
	} catch(fout) {
		document.write("Er is een fout gebeurd. Namelijk " + fout.description + ".<br />");
	} finally {
		document.write("Dit gebeurt er in het finally blok.");
	}

Met als uitvoer:

Dit gebeurt er voor de nonsensfunctie().
Er is een fout gebeurd. Namelijk undefined.
Dit gebeurt er in het finally blok.
Informatie afkomstig van http://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.