Indholdsfortegnelse:
- Valgfri fejlhåndtering
- Håndtering mere specifik til mindre specifikke fejl
- Brug af Valgfrie objekter for at undgå undtagelser
Video: Curso Java 14 - Leer y Escribir Ficheros @JoseCodFacilito 2025
Mange af de Java-kodeeksempler, du finder for læringsformål, vil indeholde fejlfinding i dem. Eksemplerne begraver dig ikke ved fejlfinding, men de vil lave gode fejlfindingsteknikker en del af applikationskoden, når det er muligt (og fejlfindingskoden dækker ikke helt formålet med eksemplet).
Med dette i tankerne giver de følgende afsnit et overblik over de teknikker, der bruges til at fange fejl. Du får se tre forskellige niveauer af fejlindfangning, der almindeligvis anvendes i Java-programmer.
Fejlfinding er en handling, der opdager en undtagelse og fortæller JRE, at du planlægger at gøre noget med det. JRE reagerer ved ikke at overføre fejlen til opkalderen af den aktuelle metode og i stedet baserer sig på den nuværende metode til at løse problemet.
Fejlfinding er normalt forbundet med prøvedelen af et forsøg … fangstopgørelse, mens fejlhåndtering normalt er forbundet med fangstdelen af en prøve … fangstopgørelse.
Valgfri fejlhåndtering
Udtrykket "valgfri fejlhåndtering" er lidt misvisende. Det er kun valgfrit, fordi Java ikke kræver, at du udfører det som en del af brugen af de forskellige objekter i din ansøgning. Hver applikation, du opbygger, skal indeholde en vis grad af fejlhåndtering, selvom Java ikke kræver, at du tilføjer det.
Faktisk vil tilføjelse af fejlhåndtering til hver applikation, du opretter, selv enkle testapplikationer, hjælpe dig med at blive dygtig i dette aspekt af Java-programmering og sætte dig foran udviklere, som ikke følger denne praksis.
Fejlhåndtering er en handling om at løse en undtagelse, som ansøgningen har fanget. I nogle tilfælde betyder håndtering af fejlen, at der vises en besked til brugeren og beder om en korrektion. Fejlhåndtering kan imidlertid tage mange former, nogle af dem er helt automatiserede og usynlige for brugeren. Denne handling er normalt forbundet med fangstdelen af en prøve … fangstopgørelse.
Håndtering mere specifik til mindre specifikke fejl
De fleste applikationer kan generere mere end en undtagelse. Derudover kan du muligvis ikke registrere præcist hvilke undtagelser en applikation vil generere. I dette tilfælde skal du angive flere fangstklausuler for forsøget … fangstopgørelse. Hver fangstklausul har specialiseret sig i en bestemt fejltype.
Derudover kan du bruge generiske undtagelseshandlere til de situationer, hvor din ansøgning oplever fejl, der ikke er inden for det sæt, du oprindeligt forventede.
Brug af Valgfrie objekter for at undgå undtagelser
Af alle de undtagelser, du muligvis ser, når du arbejder med Java, er NullPointerException (eller NPE) den mest udbredte og undertiden den sværeste at diagnosticere. En NullPointerException sker, når du sender en null-værdi til en Java-funktion, der forventede en faktisk værdi. Problemet er, at ikke alle situationer, der skaber en NPE, faktisk er et problem.
Nogle gange forventer du at have en nullværdi, og du har brug for en metode til at håndtere det. Tænk for eksempel på situationen, hvor du vil finde en bestemt værdi i en liste over potentielle værdier. Det er helt muligt, at du ikke finder den værdi, du vil have, hvilket resulterer i en null-værdiafkast.
Hvis du derefter forsøger at behandle nullværdien, får du en NPE. Fordi du havde forventet nullværdier at forekomme, kan det være frygteligt svært at finde fejlen.
Indtil nu var det svært for menneskelige udviklere at forstå den sort-hvide tænkning på en computer. Java 8 giver nu Valgfrie objekter til at håndtere den situation, hvor en returværdi fra en funktion er valgfri snarere end nødvendig.