Hjem Personlig finansiering Programmering Java: Når feil oppstår - dummier

Programmering Java: Når feil oppstår - dummier

Innholdsfortegnelse:

Video: Curso Java 09 - Bucles for anidados @JoseCodFacilito 2024

Video: Curso Java 09 - Bucles for anidados @JoseCodFacilito 2024
Anonim

Feil i Java-programmer kan forekomme på ulike tidspunkter. Du kan imidlertid i stor grad klassifisere når det oppstår en feil i to kategorier, på kompileringstid og runtime, som beskrevet i de følgende avsnittene.

Kompilere tidsfeil

Kompilatoren konverterer programkoden til Java byte-kode. Under denne prosessen tar det den menneskelige lesbare koden du skriver og konverterer den til noe som Java Runtime Environment (JRE) forstår.

For å utføre denne prosessen må kompilatoren parse koden, noe som betyr at den leser koden på en måte som utvetydig bestemmer nøyaktig hva du vil at programmet skal gjøre når du vil ha det til å gjøre det, og hvordan du vil oppnå oppgaven. Hvis du bryter reglene for å skrive entydig kode, viser kompilatoren en feilmelding. Denne meldingen er egentlig en slags unntak.

Parsing betyr å lese innspillet du oppgir, for eksempel kode i menneskelig lesbar form, og slå den til noe annet, for eksempel Java byte-kode. En applikasjon kan også analysere brukerinngang. For eksempel kan en bruker skrive en streng som din søknadskode blir til et nummer.

Så, parsing er en handling å lese noen type innspill, tolke den innspillingen på en bestemt måte, og deretter produsere produksjon basert på den tolkede inngangen. En parser genererer en feil når inngangen ikke er hva den forventer.

For eksempel, hvis brukeren skriver inn en streng som inneholder bokstaven C, og du forventet en streng som inneholder et tall, for eksempel 123, vil parseren generere et unntak som sier at inngangen er feil.

Kompilere tidsfeil er det enkleste å håndtere fordi kompilatoren vanligvis forteller deg nøyaktig hva som er galt og hvor feilen har oppstått. Selv om informasjonen ikke er nøyaktig, vil kompilatoren i det minste få deg til det høyre området av den ødelagte koden, slik at du kan lete etter feilen den inneholder.

For å sikre at alle forstår nøyaktig hvordan Java-språket skal fungere, lager utviklere en spesifikasjon for det. Denne spesifikasjonen inneholder språkelementene i et spesielt språk som heter Backus-Naur Form (BNF). Bruke BNF er en ekstremt presis metode for å beskrive et språk slik at det ikke er noen risiko for feilfortolkning av noen.

Du kan se et utvalg av BNF for Java-språket ved Institutt for datalogi - Daimi. Ikke bekymre deg for mye om å kunne lese denne spesifikasjonen. De fleste utviklere lærer aldri å tolke BNF for språkene de bruker - det er domenet til kompilatorutviklere.

Runtime-feil

Java-kompilatoren kan ikke finne alle feilene i koden din. Hvis skjemaet til koden er riktig (det vil si, du har ikke gjort noen feil ved å skrive elementene som lager programmet), vil kompilatoren ikke finne feilen.

Hvis du for eksempel initialiserer en numerisk verdi til 5 i stedet for 4, kan kompilatoren ikke finne feilen for deg fordi kompilatoren ikke har noen anelse om at du egentlig ment å skrive 4. Disse feilene oppretter kjøretidsfeil - de feilene som oppstår på et tidspunkt under programgjennomføringen.

Runtime feil kan oppstå på alle mulige tider. Noen feil er mer sannsynlig å forekomme på bestemte tidspunkter. Følgende liste gir deg noen ideer om når kjøretidsfeil sannsynligvis vil oppstå:

  • Initialisering: Når programmet starter først - før det presenterer noen form for grensesnitt til brukeren eller utfører noe nyttig arbeid - går det gjennom en initialiseringsfase. Dette er når du setter en variabel til feil type eller prøver å bruke en variabel før du initialiserer det, blir det lagt merke til det. Mange ressursrelaterte feil oppstår også under initialisering fordi de fleste applikasjoner åpner nødvendige ressurser i løpet av denne tiden.

  • Driftsmodus: Etter at et program initialiseres, er det i driftsmodus. Hvis det har et brukergrensesnitt, begynner det å samhandle med brukeren. Dette er tidspunktet da brukerinnmatningen er viktigst.

    Du finner også feil initialiserte variabler for øyeblikket fordi brukeren (eller mottakeren av programutgangen, for eksempel systemet) vil se at utgangen er feil. Brukerforespørsler om ressurser, for eksempel en datafil, oppretter også feil i løpet av denne tiden.

  • Bakgrunnsbehandling: De fleste bakgrunnsbehandlingsfeil skyldes miljøet (for eksempel tap av en nettverkstilkobling), manglende ressurser (for eksempel en tapt fil), feilinnstilte variabler eller feil i hvordan du fortalte programmet å utføre en oppgave. Noen oppgaver utføres vanligvis i bakgrunnen enn andre er.

    Hvis du for eksempel skriver ut et dokument eller laster ned ressurser fra Internett, utføres det ofte i bakgrunnen, mens brukeren fortsetter å jobbe med programmet i forgrunnen.

  • Avslutt: Når brukeren (inkludert systemkontoer) forteller programmet, er det ikke lenger nødvendig, går programmet gjennom en avslutningsfase. I løpet av denne avslutningsfasen lukker applikasjonen filer og utfører andre husholdningsarbeid som sikrer at programmet ikke lar et rot for operativsystemet.

    De vanligste feilene som kan oppstå i denne fasen, frigjør ikke ressurser som søknaden din har brukt og ikke lagrer data til disk. Selvfølgelig kan det oppstå kodingsfeil når som helst, og denne operasjonsfasen er ikke noe unntak. Du kan fortelle søknaden om å lukke fem filer når bare fire av dem faktisk er åpne.

JRE vil presentere de fleste kjøretidsfeil det oppdager til deg som unntak. JRE vil imidlertid ikke fange alle feilene i søknaden din.Du må også se på utgangen av søknaden din for å avgjøre om utgangen stemmer overens med forventningene du har for en gitt inngang.

I tillegg er det viktig å se på tilstanden til ressurser du bruker for å sikre at de ikke er skadet på noen måte. For eksempel må du sørge for at data som du skal lagre i en fil, faktisk ender i filen når søknaden avsluttes.

Java 8 har sterkere vekt på sikkerhet, noe som betyr at du vil se flere SecurityException-forekomster når du jobber med søknaden din.

Å se en økning i sikkerhets unntak betyr ikke at koden din er feil eller at Java 8 er fylt med feil - det betyr at Java 8 automatisk lokaliserer og forteller deg om problemer som kan forårsake sikkerhetsproblemer når folk bruker programmet.

Dokumentasjonen SecurityException vises på Java. nett. Selvfølgelig vil du vite hva alt hubbub handler om.

Programmering Java: Når feil oppstår - dummier

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 ...