Hoe een onbereikbare verklaringscodefout in Java op te lossen?

Hoe Een Onbereikbare Verklaringscodefout In Java Op Te Lossen



De meest voorkomende fout waarmee ontwikkelaars worden geconfronteerd, is de onbereikbare instructiecode omdat deze verborgen is en geen fouten genereert tijdens het uitvoeren. Dit deel is op een bepaalde manier verborgen, omdat de compiler dit deel van de code niet bezoekt of compileert omdat het zich op een plaats bevindt die het onbereikbare gedeelte voor de code is.

Dit artikel demonstreert de procedure om de onbereikbare instructiecodefout in Java af te handelen.

Hoe een onbereikbare verklaringscodefout in Java op te lossen?

Meerdere redenen kunnen de oorzaken zijn van onbereikbare instructiecodefouten in Java, samen met de bijbehorende oplossingen. Deze fout is niet op syntaxis gebaseerd, het is puur een logische fout of kan in sommige gevallen optreden als gevolg van een menselijke fout. Laten we, voordat we de oplossingen bezoeken, eerst kijken naar de redenen die de oorzaak kunnen zijn van onbereikbare instructiecodefouten:





Reden 1: Code ingevoegd na 'break'-verklaring



De ' pauze ”-verklaring wordt gebruikt langs de besluitvormingsverklaring en lussen. Het stopt de uitvoeringscyclus als de gewenste status is bereikt. De compiler bereikt de regel die naast de ' pauze ”verklaring in dat blok. De compiler stopt de uitvoeringscyclus en gaat naar de volgende instructie in de DOM-hiërarchie.



Bezoek de onderstaande code:





klas Half {
openbaar statisch leegte voornaamst ( Snaar [ ] argumenten ) {
voor ( int i = 0 ; i <= 10 ; ++ i ) {
als ( i == 5 ) {
pauze ;
Systeem . uit . println ( i ) ;
}
}
}
}

De bovenstaande code zou waarden moeten weergeven van ' 0 ' naar ' 4 ”. Maar met het gebruik van de verklaring na de ' pauze ”verklaring de onbereikbare verklaringsfout ontstaat:



De uitvoer toont het optreden van een onbereikbare instructiefout.

Oplossing: probeer code in te voegen boven de 'break' -verklaring

De oplossing is om de instructie te gebruiken buiten het blok waarin de ' blok ” verklaring wordt gebruikt. De bovenstaande code wordt bijvoorbeeld nauwkeurig uitgevoerd als de instructie buiten de ' als ” statement blok zoals hieronder weergegeven:

De bovenstaande momentopname van de IDE laat zien dat de fout met de onbereikbare instructiecode nu is opgelost.

Reden 2: Code ingevoegd na 'doorgaan'-verklaring

De ' doorgaan ”-instructie wordt gebruikt wanneer de programmeur een specifieke iteratie wil overslaan om door de lus te worden uitgevoerd. De compiler onderbreekt de uitvoeringscyclus wanneer het de ' doorgaan ” verklaring in de code. Dat is de reden waarom de code wordt uitgevoerd na de ' doorgaan ” statement veroorzaakt een “unreachable statement code” fout:

klas Half {
openbaar statisch leegte voornaamst ( Snaar [ ] argumenten ) {
voor ( int i = 0 ; i <= 10 ; ++ i ) {
als ( i == 5 ) {
doorgaan ;
Systeem . uit . println ( i ) ;
}
}
}
}

De uitvoer van bovenstaande code ziet er als volgt uit:

De uitvoer laat zien dat de 'onbereikbare codefout' is opgetreden.

Oplossing: voeg code in buiten het 'continue' instructieblok

Om het op te lossen, gebruikt u gewoon de code buiten de ' doorgaan ” statement blok:

Na het wijzigen van de positie wordt de fout automatisch opgelost.

Reden 3: Code ingevoegd na 'return'-verklaring

Dit scenario is hetzelfde als hierboven, de compiler slaat het deel van de code over dat na de ' opbrengst ' stelling. Het is omdat de “ opbrengst ”-instructie is het einde waarna de compiler niets hoeft uit te voeren, zoals weergegeven in de onderstaande snapshot:

Oplossing: code ingevoegd na de instructie 'return' in de main()-methode

Om het op te lossen, voert u de code in na de ' opbrengst ” statement in de main() methode:

Reden 4: Code ingevoegd na 'throw'-verklaring

De regel code die is ingevoegd na de ' gooien ” verklaring in de “ poging ”-blok wordt niet gecompileerd door de compiler. Bezoek bijvoorbeeld de onderstaande code:

klas Half {
openbaar statisch leegte voornaamst ( Snaar [ ] argumenten ) // creatie van main() methode
{
poging {
gooien nieuw Uitzondering ( 'Eerste uitzondering' ) ;
Systeem . uit . println ( 'Na Throw-uitzondering' ) ;
}
vangst ( Uitzondering k ) {
Systeem . uit . println ( k. bericht ophalen ( ) ) ;
}
}
}

Geef in de bovenstaande code een dummy-bericht weer dat is geschreven na de ' gooien ' sleutelwoord.

Na het uitvoeren van bovenstaande code:

De bovenstaande snapshot toont het optreden van een 'onbereikbare codefout' als gevolg van het gebruik van code na de ' gooien ' stelling.

Oplossing: voeg code in vóór het zoekwoord 'gooien'

Om dit op te lossen, probeert u de datum in te voegen vóór de ' gooien ' stelling. Bezoek bijvoorbeeld de onderstaande momentopname van de foutopgeloste code:

De bovenstaande uitvoer laat zien dat de uitzondering is verwijderd en dat de code nu goed werkt.

Conclusie

De ' onbereikbare afschriftcode ”-fout treedt op wanneer de regel code wordt geschreven op een plaats die onbereikbaar is voor de compiler. De mogelijke plaatsen zijn 'after the block statement', 'after the continue statement', 'after the return statement' of 'below the throw statement', enz. Dit is een logische fout en kan eenvoudig worden opgelost door de code meerdere keren te herzien en begrijpen hoe de compiler de code compileert.