Het eerste slagveld
“Verdedigen
is de sleutel passend op het slot van een overwinning.”
- Sam Rain
- Sam Rain
Vechten met het zwaard van Function objecten
en gooien met fruit van variabelen voldoet in de meeste situaties. Echter zijn
mensen, hobbits, elven en andere wezens uit Midden-Aarde niet onoverwinnelijk.
Een goede verdediging weert slagen af – en met de elvenmagie van JavaScript is
dat nog eens heel gemakkelijk met try-catch.
Een Orcse tegenaanval (door tovenaars systeemfouten
of ‘errors’ genoemd) geschied vaak wanneer de optimistische hobbit het niet
verwacht. Zelfs het onneembare fort van Rohan kent een zwakke schakel, en menig
wezen weet hoe tragisch het had kunnen aflopen zonder de try-catch van de
mensen. Het enige wat een hobbit hoeft te doen is de potentiële zwakke punten
te verdedigen met het schild van try-catch.
‘zonder try-catch’ ‘met
try-catch’
funtion optellen(a,b){ function verdedigen(a,b){
var c; var c;
return (c=a+b) try{ /*wordt altijd uitgevoerd*/
} c=a+b;
}
catch(fout){
c=0; /*wordt alleen uitgevoed bij een fout*/
}
{
funtion optellen(a,b){ function verdedigen(a,b){
var c; var c;
return (c=a+b) try{ /*wordt altijd uitgevoerd*/
} c=a+b;
}
catch(fout){
c=0; /*wordt alleen uitgevoed bij een fout*/
}
{
Hoewel er niet zomaar iets fout zal gaan
‘zonder’ try-catch, ligt de val van een fort op een zwak punt. Stel als een
ijverige elf de ‘optellen’ functie gebruikt voor een cruciale muur, en dat één
van de variabelen een waarde bevat, die niet verwacht wordt elders in het
magische script, dan zijn de gevolgen desastreus. Een fout kan zorgen dat een
script stopt – en dat is dus meteen het einde van een slag. De try-catch
‘verwacht’ dat er een potentieel gevaar kan zijn en slaat de gegevens van de
fout op in de variabele tussen de haakjes van catch, waar je als hobbit een alternatief
‘plan’ kunt plaatsen tussen de accolades. Omdat alles een object is in
JavaScript –net als fouten dus- is een enkele variabele voldoende om de fout te
‘vangen’.
Wanneer gebruikt de moedige hobbit try-catch?
Uiteindelijk gaat het om te anticiperen op een mogelijke Orcse aanval, dus:
·
wanneer je functies zeer precies
zijn bedacht met een bepaald soort gegevenstype als resultaat;
·
alle gegevens en informatie waar
je als hobbit geen controle over hebt, zoals gebruikers invoer of
uitwisseling met andere programma’s;
·
wanneer een functie een specifiek
‘formaat’ van gegevens verwacht.
Het is ook mogelijk het schild van try-catch
te gebruiken als wapen met de ‘throw’-spreuk. Met ‘throw’ maak je bewust een
fout, waardoor de magie binnen de ‘catch’ wordt uitgevoerd.
function verdedigen(orcAanval) { var x;
try {
if (orcAanval==”super groot zwaard”){
throw “rent hard weg!”; /*maakt een systeemfout aan en stopt het script hierop*/
}
else{
x=”verdedigd dapper de aanval af”;
}
catch(engeAanval) { /*enge aanval bevat*/
x = engeAanval;
}
return x;
}
if (orcAanval==”super groot zwaard”){
throw “rent hard weg!”; /*maakt een systeemfout aan en stopt het script hierop*/
}
else{
x=”verdedigd dapper de aanval af”;
}
catch(engeAanval) { /*enge aanval bevat*/
x = engeAanval;
}
return x;
}
Als we de bovenstaande magie zouden uitspreken
met:
var strijd = verdedigen(“bijl”);
dan zou de variabele strijd de tekenreeks
“verdedigd dapper de aanval af” krijgen. Echter met:
var strijd = verdedigen(“super groot zwaard”);
wordt alles onder ‘throw’ genegeerd en vliegt
de elvenmagie meteen naar ‘catch’, waardoor de variabele strijd het ‘throw’
object bevat (de tekenreeks: “rent hard weg!”).
Met het schild van try-catch hoeven hobbits
zich minder zorgen te maken voor grote enge Orcs die boven hun uitpuilen; de
magie in het schild kan bijna alles tegenhouden – indien goed ‘getimed’.
Meer
lezen over Programmeren? Klik hier
voor de inhoudsopgave van alle artikelen!
©SamRain
JavaScript - 20
JavaScript - 20