Inhoudsopgave:
- Optionele foutafhandeling
- Omgaan met meer-specifiek voor minder specifieke fouten
- Optionele objecten gebruiken om uitzonderingen te voorkomen
Video: From C to Python by Ross Rheingans-Yoo 2024
Veel van de Java-codevoorbeelden die u voor leerdoeleinden vindt, bevatten foutopsporing . De voorbeelden zullen je niet begraven in het vangen van fouten, maar ze zullen waar mogelijk een goede foutvangstechniek onderdeel van de applicatiecode maken (en de foutopsporingscode verbergt niet volledig het doel van het voorbeeld).
Met dit in gedachten geven de volgende secties een overzicht van de technieken die worden gebruikt om fouten te vangen. U ziet drie verschillende niveaus van foutopsporing die gewoonlijk worden gebruikt in Java-toepassingen.
Foutopsporing is het detecteren van een uitzondering en de JRE vertellen dat u van plan bent er iets mee te doen. De JRE antwoordt door de fout niet door te geven aan de beller van de huidige methode en vertrouwt in plaats daarvan op de huidige methode om het probleem op te lossen.
Foutopsporing wordt normaal geassocieerd met het try-gedeelte van een try … catch-instructie, terwijl foutafhandeling normaal gesproken wordt geassocieerd met het catch-gedeelte van een try … catch -instructie.
Optionele foutafhandeling
De term "optionele foutafhandeling" is een verkeerde naam. Het is alleen optioneel omdat Java niet vereist dat u het uitvoert als onderdeel van het gebruik van de verschillende objecten in uw toepassing. Elke applicatie die je bouwt moet een bepaald niveau van foutafhandeling bevatten, zelfs als Java het niet vereist om dit toe te voegen.
In feite zal het toevoegen van foutafhandeling aan elke applicatie die u maakt, zelfs eenvoudige testapplicaties, u helpen om vaardig te worden in dit aspect van Java-programmering en u een voorsprong geven op ontwikkelaars die deze praktijk niet volgen.
Foutafhandeling is de handeling waarbij een uitzondering wordt opgelost die door de toepassing is opgesloten. In sommige gevallen betekent het afhandelen van de fout een bericht voor de gebruiker en vraagt om een correctie. Echter, foutafhandeling kan vele vormen aannemen, sommige volledig geautomatiseerd en onzichtbaar voor de gebruiker. Deze handeling wordt normaal geassocieerd met het catch-gedeelte van een try … catch-verklaring.
Omgaan met meer-specifiek voor minder specifieke fouten
De meeste toepassingen kunnen meer dan één uitzondering genereren. Bovendien kunt u mogelijk niet precies detecteren welke uitzonderingen een toepassing zal genereren. In dit geval moet je meerdere catch-clausules opgeven voor de try … catch-verklaring. Elke catch-clausule is gespecialiseerd in een bepaald soort fout.
Bovendien kunt u generieke uitzonderingshandlers gebruiken voor situaties waarin uw toepassing fouten tegenkomt die niet binnen de set vallen die u oorspronkelijk had verwacht.
Optionele objecten gebruiken om uitzonderingen te voorkomen
Van alle uitzonderingen die u mogelijk ziet bij het werken met Java, is de NullPointerException (of NPE) de meest voorkomende en soms de moeilijkste om te diagnosticeren. Een NullPointerException gebeurt op elk moment dat u een ongeldige waarde doorgeeft aan een Java-functie die een werkelijke waarde verwachtte. Het probleem is dat niet elke situatie die een NPE creëert daadwerkelijk een probleem is.
Soms verwacht u dat een nulwaarde voorkomt en heeft u een methode nodig om hiermee om te gaan. Bekijk bijvoorbeeld de situatie waarin u een specifieke waarde in een lijst met potentiële waarden wilt vinden. Het is heel goed mogelijk dat u de gewenste waarde niet zult vinden, wat resulteert in een nulwaarde-opbrengst.
Als u vervolgens de null-waarde probeert te verwerken, krijgt u een NPE. Omdat u verwachtte dat null-waarden zouden optreden, kan het vreselijk moeilijk zijn om de fout te vinden.
Tot nu toe was het voor ontwikkelaars moeilijk om het zwart-witdenken van een computer te begrijpen. Java 8 biedt nu Optionele objecten om de situatie te behandelen waarbij een retourwaarde van een functie optioneel is in plaats van vereist.