Inhoudsopgave:
- Fouten weggooien tijdens uitzonderlijke omstandigheden
- Fouten doorgeven aan de beller
- Vereiste foutafhandeling
Video: Linux Tutorial for Beginners: Introduction to Linux Operating System 2024
Het is essentieel dat uw Java-code alles in het werk stelt om een probleem op te lossen. Er zijn echter tijden dat uw code eenvoudig niet genoeg informatie, bronnen, rechten of een andere vereiste heeft om een probleem op te lossen.
Wanneer dit gebeurt, genereert uw code een fout door een uitzonderingsobject te gebruiken. De term uitzondering is geschikt omdat dit de uitzondering op de regel moet zijn in plaats van de eerste handeling die de toepassing uitvoert. Niettemin komen toepassingen fouten tegen die uitzonderlijke maatregelen vereisen en de volgende secties beschrijven hoe om te gaan met dit soort situaties.
Fouten weggooien tijdens uitzonderlijke omstandigheden
Voor oefenen kunt u een toepassing maken die meerdere soorten fouten kan genereren. Normaal gesproken zou u geen foutmelding geven als een waarde in het verkeerde bereik is - u zou in plaats daarvan een bericht rechtstreeks aan de gebruiker laten zien. U kunt echter een voorbeeld maken dat laat zien hoe te gooien en een fout te vangen vanuit een methode.
Fouten doorgeven aan de beller
Veel codevoorbeelden die je begint zijn net begonnen om het punt te bereiken waarop je methoden aanroept vanuit main (). De methode main () is altijd het hoogste niveau van uw toepassing. Terwijl u methoden aanroept, vormen de methoden die u aanroept aanvullende niveaus.
Een methode die wordt aangeroepen vanuit main (), bevindt zich bijvoorbeeld op het tweede niveau van uw toepassing. Als die methode een andere methode zou moeten aanroepen, zou die methode zich op het derde niveau bevinden, enzovoort. De meeste toepassingen bestaan uit veel gespreksniveaus.
Als u een uitzondering op het scherm ziet, wordt er feitelijk een lijst weergegeven met de methoden die de huidige methode hebben aangeroepen in een indeling met de naam .
De oproepstapel is een lijst met methoden en de volgorde waarin ze door andere methoden worden aangeroepen. Het kennen van de call stack kan u helpen de bron van een mogelijke fout te vinden wanneer dit niet gebeurt op het huidige niveau van de applicatie.
Omgaan met fouten is een essentieel onderdeel van goede programmeerpraktijken. Als u robuuste applicaties wilt die niet constant crashen, moet u zorgen voor een goede afhandeling van fouten. Het is echter ook een probleem om een fout te verwerken wanneer u niet genoeg informatie hebt om deze fout aan te pakken.
Wanneer uw code probeert een fout op een te laag niveau te verhelpen, verbergt deze de fout vanaf een niveau dat dit mogelijk kan verhelpen. Ja, u wilt een fout op het laagst mogelijke niveau verhelpen, maar niet ten koste van het bieden van een reparatie waardoor u iets ernstigers zou kunnen verbergen.
Wanneer u merkt dat een bepaald niveau van een toepassing niet over de vereiste bronnen, informatie, rechten, gebruikerstoegang of een ander item beschikt dat nodig is om een fout af te handelen, geeft u een throw-instructie af met het juiste uitzonderingsobject.Het vorige niveau van de toepassing zal de uitzondering ontvangen en bepalen of het het kan verwerken.
Als de methode main () de uitzondering ontvangt, moet u echter bepalen wat u met de fout moet doen, anders loopt de toepassing vast. Het wordt over het algemeen als een slechte programmeerpraktijk beschouwd om de toepassing gewoon te laten crashen - je moet op de een of andere manier komen om te gaan met fouten die de applicatie tegenkomt.
Vereiste foutafhandeling
Java biedt twee soorten uitzonderingen: aangevinkt (gecontroleerd door de JRE) en uitgeschakeld (niet gecontroleerd door de JRE). U hebt de mogelijkheid om een ongecontroleerde uitzondering af te handelen. Java dwingt je echter om een gecontroleerde uitzondering af te handelen. Uw code compileert niet eens als u een methode probeert te gebruiken waaraan een gecontroleerde uitzondering is gekoppeld.
Een gecontroleerde uitzondering is een uitzondering die de JRE te horen krijgt door de klassendefinitie die moet worden gecontroleerd. De JRE dwingt de gebruiker van de klasse om behandeling voor de uitzondering te bieden om ervoor te zorgen dat de klasse betrouwbaar werkt.
Allerlei oneven gegevens worden geassocieerd met aangevinkte en niet-gecontroleerde uitzonderingen. Een eenvoudige manier om te weten of een uitzondering wordt gecontroleerd, is om de bovenliggende klasse te kennen. Alle uitzonderingen die zijn onderverdeeld in de klassen Error of RuntimeException, zijn uitgeschakeld - elke andere uitzondering is aangevinkt.
De beste werkwijze is om elke uitzondering in uw toepassing te verwerken en u hoeft zich geen zorgen te maken of een uitzondering is aangevinkt of niet is aangevinkt. Een geweldige ontwikkelaar behandelt altijd potentiële fouten - dat is de bottom line.