Taklinger Feilmeldinger i Java Programming

July 6  by Eliza

Noen ganger kan feilmeldinger spre frykt inn i hjertet av selv den modigste programmerer. Heldigvis noen nyttig, beroligende råd er her - råd for å hjelpe deg med å løse problemet når du ser en av disse meldingene.

NoClassDefFoundError

Du får denne feilen når du prøver å kjøre koden din. Så først spørre deg selv, har du forsøke å kompilere koden? Hvis ja, fikk du se noen feilmeldinger når du kompilert? Hvis du så feilmeldinger, se etter ting du kan fikse i din .java fil. Prøv å fikse disse tingene, og deretter kompilere .java filen på nytt.

Hvis du vanligvis holde koden i JavaPrograms katalogen, sørg for at du fortsatt jobber i denne JavaPrograms katalogen. (I Windows, sørg for at ledeteksten sier JavaPrograms.)

Kontroller at du har en passende navnet .class fil i arbeidsmappen. For eksempel, hvis du prøver å kjøre et program som heter MyGreatProg, se etter en fil som heter MyGreatProg.class i arbeidsmappen.

Sjekk classpathen å sørge for at den inneholder .class filen du trenger. For eksempel, hvis alle Java-kode er i arbeidsmappen, sørg for at CLASSPATH inkluderer en prikk.

NoSuchMethodError

Når du støter på denne feilmeldingen, se etter stavefeil eller inkonsekvent kapitalisering av et metodenavn. Sjekk kapitalisering av main (ikke Main).

Når du utstede java-kommandoen (eller gjøre hva du vanligvis gjør for å kjøre et program i miljøet), gjør den klassen som du prøver å kjøre inneholde sin egen viktigste metoden? Hvis ikke, deretter finne den klassen med den viktigste metoden og kjøre den klassen i stedet.

Kan ikke løse Symbol

Hvis du får en feilmelding som inkluderer kan ikke løse symbol, kontrollere staving og kapitalisering av alle identifikatorer og søkeord. Så sjekk igjen.

Hvis den uavklarte symbol er en variabel, sørg for at denne variabelen erklæring er på rett sted. For eksempel, hvis variabelen er deklarert i en for løkke er initialisering, er du prøver å bruke den variabelen utenfor for loop? Hvis variabelen er deklarert inne i en blokk (et par av klammeparentes), er du prøver å bruke den variabelen utenfor blokken?

Til slutt, se etter feil i variable erklæring. Dersom kompilatoren finner feil i en variabel erklæring, så kompilatoren ikke kan løse den variabelen navn i resten av koden.

Forventet ';' (Eller Forventet noe annet)

Når du ser en feilmelding som sier ';' forventet, gå gjennom koden din og sørge for at hver setning og hver deklarasjon avsluttes med et semikolon. Hvis ja, så kanskje kompilatoren gjette om en manglende semikolon er feil. Fikse en annen feil (tilsynelatende urelatert) og rekompileres koden din kan kvitte seg med en falsk ';' forventede meldingen.

For en manglende parentes, sjekk vilkårene for hvis uttalelser og sløyfer. Sørg for at hver tilstand er vedlagt i parentes. Sørg også for at en parameter liste (i parentes) følger navnet på hver metode.

For en <identifikator> forventet melding, sjekk dine oppdrag uttalelser. Sørg for at hvert oppdrag uttalelsen er inne i en metode. (Husk, en erklæring med en initialisering kan være ute av en metode, men hver ren gamle tilordningssetning må være inne i en metode.)

For den "klassen" eller "interface 'forventet melding, sørg for at du har stavet ordet klasse korrekt. Hvis koden din har et importdeklarasjonen, kontrollere staving og kapitalisering av ordet import.

Mangler Metode Body eller Erklærer Abstract

Du får en manglende metode kropp eller erklære abstrakt melding når kompilatoren ser en metode header, men kompilatoren kan ikke finne den metoden kropp. Se på enden av metodens spissen. Hvis du endte header med et semikolon, og deretter prøve å fjerne semikolon.

Hvis overskriften ikke ender med et semikolon, så sjekk koden umiddelbart etter spissen. Koden umiddelbart etter toppteksten skal begynne med en åpen klammeparentes (begynnelsen av en fremgangsmåte kroppen). Hvis noen kode kommer mellom header og kroppens åpen klammeparentes, vurdere å flytte den koden et annet sted.

En 'annet' uten en "hvis"

Sammenligne antall hvis klausuler med antall annet klausuler. En dersom klausulen ikke trenger å ha et annet klausul, men hvert annet klausul må tilhøre en hvis klausul.

Husk, setter du en hvis tilstand i parentes, men du trenger ikke sette et semikolon etter tilstanden. Visste du feilaktig avslutte en hvis tilstand med et semikolon?

Se på alle linjer mellom en hvis og dens annet. Når du finner mer enn en setning mellom en hvis og dens annet, se etter klammeparentes. Hvis påstandene mellom hvis og dens annet ikke er omgitt av klammeparentes, kanskje du har funnet den skyldige.

Ikke-statisk variabel kan ikke refereres fra en statisk Kontekst

Mange ting kan gi deg en ikke-statisk variabel kan ikke refereres fra en statisk sammenheng feilmelding. Men for begynnelsen programmerere, er den vanligste årsaken til å ha en variabel som er deklarert utenfor hovedmetode. Det er ingen synd å erklære en slik variabel, men fordi den viktigste metoden er alltid statisk, trenger du noen spesiell hjelp til å gjøre den viktigste metoden referere til en variabel som er deklarert utenfor den viktigste metoden.

Den raskeste løsningen er å sette ordet statisk foran variabelen erklæring. Men først, spør deg selv hvorfor denne variabelen erklæring er ikke inne den viktigste metoden. Hvis det er ingen god grunn, og deretter flytte den variable erklæring, slik at det som er inni den viktigste metoden.

FileNotFoundException (The System Kan ikke den angitte filen) eller EOFException

Hvis du støter på en FileNotFoundException melding, sjekk at filen heter i koden faktisk eksisterer. (Se etter filen ved hjelp av systemets explorer eller bruke kommandovinduet.) Dobbeltsjekk stavemåten i din kode mot navnet på filen på harddisken.

Hvis du har funnet en riktig navn fil på harddisken, må du kontrollere at filen er i riktig katalog. (For et program som kjører i din arbeidskatalog, er en typisk datafil i arbeidskatalogen også.)

Hvis du er en Windows-bruker, må du kontrollere at systemet ikke legge til en ekstra .txt når du opprettet filen. (Bruk ledeteksten vinduet for å sjekke filens navn. Windows Explorer kan skjule .txt, og som alltid fører til forvirring.)

For en EOFException, er du sannsynligvis prøver å lese mer data enn du har i filen. Veldig ofte, gjør en liten logisk feil programmet gjøre dette. Så gjør en nøye gjennomgang av alle trinnene i programmet henrettelsen. Se etter subtile ting, som feilaktig primet sløyfer eller lesing av array-verdier forbi rekken største indeks. Se etter forholdene som bruker <= når de skal bruke <. Forhold som disse kan ofte være plagsom.