Uopnåelig erklæring fejl i Java

sådan rettes uopnåelig udsagnsfejl i Java

Java uopnåelig erklæring er en fejl i henhold til Java-Sprogspecifikationen .

denne fejl betyder, at kontrolstrømmen i dit program ikke kan komme til denne erklæring, men du antager, at de ville være. Kompilatoren analyserer strømmen og rapporterer disse udsagn til dig som fejlmeddelelser. Det er en pålidelig indikator for logisk fejl i dit program.

disse udsagn kan være uopnåelige for det meste på grund af følgende grunde:

  1. Return statement
  2. Infinite loop

Return statement

i ovenstående eksempel afslutter returfunktionen din metode, hvilket betyder, at ingen kodelinje forbi den vil blive udført . Hvis du vil have dit print til at gå igennem, skal du flytte det over returopgørelsen. Hvis du opbevarer erklæringer efter returneringserklæringen, er disse erklæringer ikke tilgængelige erklæringer fra den dataansvarlige. Ved at bruge return statement fortæller vi kontrol skal gå tilbage til sin opkalder eksplicit .

Infinite loop

java infinite loop

kompilatoren giver dig en uopnåelig udsagnsfejl, fordi dit System.uden.print (“inside infinite loop”); kode kan aldrig nås med. Når compileren kompilerer hele kroppen af kode og gøre byte kode i henhold til din kode, det smartere nok til at registrerer utilgængelig kode og også døde kode. Så øjeblikkelig pause i for-loop gør uopnåelige andre udsagn.

når kompilatoren rapporterer en uopnåelig erklæring , peger den dig typisk på erklæringen. Når det sker, kan du følge strømmen af kontrol fra top til bund for at finde ud af, hvorfor udsagnet aldrig kan nås. Der er ret strenge regler, når udsagn kan nås i java. Disse regler er designet til let at blive evalueret og ikke at være 100% nøjagtige. Det bør forhindre grundlæggende programmeringsfejl. For at begrunde reachability i java er du begrænset til disse regler, fælles logik gælder ikke. Så her er reglerne fra Java-Sprogspecifikationen 14.21. Uopnåelige Udsagn.

You might also like

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.