Hjem Personlig finansiering Programmering Java: kaster feil - dummies

Programmering Java: kaster feil - dummies

Innholdsfortegnelse:

Video: $stdout - Pair Programming 2024

Video: $stdout - Pair Programming 2024
Anonim

Det er viktig at Java-koden gjør sitt ytterste for å løse et problem. Det er imidlertid tider når koden din ikke har nok informasjon, ressurser, rettigheter eller noe annet krav til å løse et problem.

Når dette skjer, kaster koden din en feil ved å bruke et unntaksobjekt. Begrepet unntak er hensiktsmessig fordi det burde være unntaket til regelen, i stedet for den første handlingen som søknaden utfører. Likevel støter applikasjoner på feil som krever eksepsjonelle tiltak, og følgende avsnitt beskriver hvordan man skal håndtere slike situasjoner.

Kastfeil under eksepsjonelle forhold

For øvelse kan du opprette et program som kan generere flere typer feil. Normalt vil du ikke kaste en feil hvis en verdi er i feil rekkevidde - du vil vise en melding direkte til brukeren i stedet. Du kan imidlertid lage et eksempel som demonstrerer hvordan du kaster og tar en feil fra en metode.

Passeringsfeil til den som ringer

Mange kodeeksempler du begynner med, begynner akkurat å komme til det punktet du ringer metoder fra main (). Hovedmetoden () er alltid det øverste nivået av søknaden din. Som du ringer til, vil metodene du ringer danne flere nivåer.

For eksempel vil en metode som kalles fra main () være på det andre nivået av søknaden din. Hvis den metoden måtte kalle en annen metode, ville den metoden være på tredje nivå, og så videre. De fleste applikasjonene består av mange nivåer av samtaler.

Faktisk, når du ser et unntak på skjermen, viser det faktisk en liste over metodene som kalte den gjeldende metoden i et format som heter call stack.

Anropsstakken er en liste over metoder og rekkefølgen som de kalles av andre metoder. Å vite samtalestakken kan hjelpe deg med å finne kilden til en potensiell feil når den ikke skjer på det nåværende nivået av applikasjonen.

Håndteringsfeil er en viktig del av god programmeringspraksis. Hvis du vil ha robuste applikasjoner som ikke hele tiden krasjer, må du sørge for god feilhåndtering. Det er imidlertid også et problem å forsøke å håndtere en feil når du ikke har nok informasjon til å håndtere denne feilen.

Når koden forsøker å fikse en feil for lavt nivå, skjuler den feilen fra et nivå som muligens kan fikse det. Ja, du vil fikse en feil på lavest mulig nivå, men ikke på bekostning av å gi en reparasjon som faktisk kunne ende opp med å gjemme noe mer alvorlig.

Når du finner ut at et bestemt nivå av et program ikke har de nødvendige ressursene, informasjonene, rettighetene, brukerens tilgang eller noe annet element som trengs for å håndtere en feil, utsteder du et kasteoppdrag med det aktuelle unntaksobjektet.Det forrige nivået av søknaden vil motta unntaket og avgjøre om det kan håndtere det.

Men hvis hovedmetoden () () får unntaket, må du avgjøre hva du skal gjøre med feilen, eller programmet vil krasje. Det regnes generelt som dårlig programmeringspraksis for å bare la programmet krasje - du må komme opp med noen måte å håndtere feil som applikasjonen møter.

Nødvendig feilbehandling

Java gir to typer unntak: sjekket (de som overvåkes av JRE) og ukontrollert (de som ikke overvåkes av JRE). Du har muligheten til å håndtere et ukontrollert unntak. Imidlertid tvinger Java deg til å håndtere et kontrollert unntak. Koden din vil ikke engang kompilere hvis du prøver å bruke en metode som har et merket unntak assosiert med det.

Et kontrollert unntak er en som JRE blir fortalt av klassen definisjonen for å overvåke. JRE tvinger brukeren av klassen til å gi håndtering for unntaket for å sikre at klassen utfører pålidelig.

Alle typer merkelige detaljer er knyttet til sjekket og ukontrollert unntak. En enkel måte å vite om et unntak er sjekket, er å vite foreldreklassen. Alle unntak som er underklasse fra feil- eller RuntimeException-klassene er ikke merket - alle andre unntak er merket.

Den beste fremgangsmåten er å håndtere alle unntak i søknaden din, og du trenger ikke å bekymre deg for om et unntak er merket eller ikke merket. En stor utvikler håndterer alltid mulige feil - det er bunnlinjen.

Programmering Java: kaster feil - dummies

Redaktørens valg

Vanlige visuelle studio-tastaturgenveier - dummier

Vanlige visuelle studio-tastaturgenveier - dummier

Du kan få tilgang til mange av funksjonene du bruker i Visual Studio til Lag en Silverlight-applikasjon gjennom tastaturgenveier. Her er de vanlige snarveiene som hjelper deg med å utføre oppgaver raskt i Visual Studio. Tastatur snarvei Handling Ctrl + Alt + F1 Åpne Visual Studio Documentation Ctrl + Shift + B Bygg programmet Ctrl + F5 Kjør prosjektet Ctrl + Alt + X Åpne verktøykassen hvis ...

Velg riktig format for e-postmarkedsføringsmeldingen din - dummies

Velg riktig format for e-postmarkedsføringsmeldingen din - dummies

Som Du komponerer markedsførings-e-postene dine, husk at formatet på e-posten din visuelt kommuniserer hovedideen til innholdet før publikum selv begynner å lese det. Forbrukerne forventer at formatet på e-posten din samsvarer med informasjonen den inneholder, slik at bruk av riktig format bidrar til å bygge publikums tillit. Velg ...

Kombinere flere samtaler til handling i din markedsføring e-post - dummies

Kombinere flere samtaler til handling i din markedsføring e-post - dummies

Din e-postmarkedsføringslisten består sannsynligvis av prospekter og kunder i ulike stadier av kjøpesyklusen med litt forskjellige interesser, så en del av publikum vil aldri være klar til å reagere umiddelbart på hver handling. Selv om alle på din e-postliste er klare til handling, er dine anrop til handling ...

Redaktørens valg

Opprett en Pivot-tabell YTD-totalvisning for Excel-rapporten - dummies

Opprett en Pivot-tabell YTD-totalvisning for Excel-rapporten - dummies

En nyttig rapportvisning I et Excel-pivottabell er YTD-totalsvisningen. Noen ganger er det nyttig å fange et løp-total-visning for å analysere bevegelsen av tall på en årlig basis (YTD) basis. Denne figuren illustrerer et pivottabell som viser en løpende total omsetning per måned for hvert år. I denne visningen er du ...

Opprett en pivottabel ved hjelp av Excels interne datamodell - dummies

Opprett en pivottabel ved hjelp av Excels interne datamodell - dummies

I enkelte tilfeller vil du kanskje opprett et pivottabell fra grunnen ved hjelp av Excels eksisterende interne datamodell som kildedata. Her er trinnene for å gjøre det: Velg Sett inn → PivotTable fra båndet. Dialogboksen Create PivotTable åpnes. Velg alternativet Bruk en ekstern datakilde, som vist, og klikk deretter på ...

Hvordan lage en standard snikker i Power Pivot - dummies

Hvordan lage en standard snikker i Power Pivot - dummies

Slicers tilbyr et brukervennlig grensesnitt med som du kan filtrere en Power Pivot pivottabell. Det er på tide å lage din første slicer. Bare følg disse trinnene:

Redaktørens valg

Alarmhendelsen i GameMaker: Studio-dummies

Alarmhendelsen i GameMaker: Studio-dummies

Alarmer er utmerket for når du vil ha tid Handlinger i din spill i GameMaker: Studio. For eksempel, hvis du vil at spilleren bare skal skyte kuler en gang hvert annet sekund, kan du sette en alarm for det. Hvis du vil når nye fiendtlige fly vises, kan du sette en alarm for det ...

Flytt retningsaktive handlinger i GameMaker: Studio - dummies

Flytt retningsaktive handlinger i GameMaker: Studio - dummies

I GameMaker: Studio, Flytt-fanen er den første kategorien i vinduet Objektegenskaper. Her er en liste over hver av handlingene du kan tilordne objektene. I følgende definisjoner brukes begrepet Instance for å referere til hva handlingen påvirker. Men du konfigurerer handlingen i objektet ...

Andre hendelser i GameMaker: Studio - dummies

Andre hendelser i GameMaker: Studio - dummies

I GameMaker: Studio, Andre hendelser er de som ikke anses verdige av sitt eget sted på menyen Event. Disse andre hendelsene kan være ganske kjempebra. Menyelementene er ganske mye selvforklarende, så det er ikke nødvendig med detaljer her. For fullstendige beskrivelser av hver av disse elementene, kan du alltid trykke F1 i GameMaker og ...