Archief - Exceptions Java

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

LilWeezy

Legacy Member
Dag iedereen,

Wij zijn op school bezig ivm exception en dergelijke.

We leren ook hoe je deze moet afhandelen (try/catch)

Maar in de cursus staat dat je deze het beste gaat afhandelen in je main(ui) / Userinterface.

Kan iemand hiervan een voorbeeld geven hoe ik dit zou moeten doen in de UI ? Want ik ben het enkel maar gewoon om ze op te vangen in de methodes zelf.

Alvast bedankt!

Karre

Legacy Member
Je zet naast de methode de exceptie die gethrowed moet worden en in de UI (waar de methode aangesproken wordt) vang je die dan gewoon weer op met een try & catch.

Code:
public int geefIets(int index) throws ArrayIndexOutOfBoundsException {
...
}

Fraggie

Legacy Member
Je zal voornamelijk alle excepties op 1 punt willen afhandelen. Dit om zowel het overzicht te behouden als je code onderhoudbaar te houden.

Hou ook rekening met verantwoordelijkheden, als een methode twee getallen deelt in de vorm van c = a / b, dan mag b niet 0 zijn. Deze methode mag zijn input controleren en indien alles correct is, de deling uitvoeren. Het is echter niet de bedoeling dat deze methode ook de user een kans geeft om een nieuwe b op te geven.. dat zou gewoon onnozel zijn. Dus je controleert de input, en gooit zelf een exceptie. Het is de verantwoordelijkheid van de caller om deze dan op te vangen en om een nieuwe b te vragen.

pietje666

Legacy Member
Karre zei:
Je zet naast de methode de exceptie die gethrowed moet worden en in de UI (waar de methode aangesproken wordt) vang je die dan gewoon weer op met een try & catch.

Code:
public int geefIets(int index) throws ArrayIndexOutOfBoundsException {
...
}

en als aanvulling/verduidelijking daarop,
-ge kunt meerdere exceptions doorgooien,
-als ge bijvoorbeeld een Mysqlexception ofzo moet handelen dan kunt ge dus oftewel nen trycatch block rond uw stuk code zetten of achter de methodenaam bij throws zetten zoals karre doet. (dan moet ge waar ge die methode aanroep wel nen trycatch blok zetten of die exception weer doorgooien)

LilWeezy

Legacy Member
Stel ik heb een methode :

public void mijnTesting(int index) throws IndexOutOfBoundsException
{
if(index <0 && index > mijnArrayList.size() ) throw new IndexOutOfBoundsException();
....
}

Hoe zou ik dit dan moeten schrijven in de main (toegepast op dit voorbeeld)?

Karre

Legacy Member
Code:
try {
object.mijnTesting(1);
} catch(IndexOutofBoundsException e) {

}

Gezien de vele vragen die ik u al heb zien stellen is het boek Java How To Program wel nog iets voor u trouwens.

blackrabbit

Legacy Member
Fraggie zei:
Je zal voornamelijk alle excepties op 1 punt willen afhandelen. Dit om zowel het overzicht te behouden als je code onderhoudbaar te houden.
Je vangt ze toch waar dat nuttig is? Waar je iets kan ondernemen om de exception recht te trekken. Dat kán toch niet allemaal op 1 punt zijn?

Fraggie

Legacy Member
blackrabbit zei:
Je vangt ze toch waar dat nuttig is? Waar je iets kan ondernemen om de exception recht te trekken. Dat kán toch niet allemaal op 1 punt zijn?
Alles is relatief natuurlijk maar stel dat je met een statemachine werkt, dan plaats je de exception handeling in 1 overkoepelende methode dan voor elke event handler telkens opnieuw dezelfde code te moeten schrijven.

Ook wanneer je werkt met 'contractuele condities' bij je methode aanroepen: het heeft geen enkel nut om je pre condities te checken, want waarom heb je anders pre condities? In zo'n geval check je al alle user input op voorhand af en eens gebonden aan je pre en post condities loopt alles van een leien dakje.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan