Java >> Java tutorial >  >> Java

Løsning af Java unreachable statement

Java unreachable-sætningen er en kompileringsfejl, der opstår, når compileren registrerer en kode, der ikke blev udført som en del af programmet. Når du når denne tilstand, betyder det, at dit program ikke vil blive afviklet længere, og derfor er dette stykke kode unødvendig og bør fjernes.

Der er et par årsager til dette problem. Lad os diskutere nogle af de mulige årsager, og hvordan man løser dette:

Returneringserklæring

Funktionsudførelse slutter, når en retursætning kaldes. Enhver sætning i funktionen, der kommer efter returneringserklæringen, vil ikke blive udført. At skrive din kode efter denne returerklæring resulterer således i en uopnåelig java-sætning.
Eksempel:

public class Main
{
	public static void main(String[] args) {
	    
	    System.out.println("The java unreachable statement");
	return;
 
        System.out.println("I will not  be printed");
	}
}

Output:

Main.java:16: error: unreachable statement
        System.out.println("I will not  be printed");
        ^
1 error

I ovenstående eksempel har vi en printopgørelse efter returopgørelsen. Ved at bruge return-erklæringen fortæller vi kontrollen om at gå tilbage til den, der ringer, eksplicit; derfor vil enhver kode efter dette blive betragtet som en død kode, da den aldrig vil blive eksekveret.

For at løse denne fejl skal du dobbelttjekke strømmen af ​​din kode og sørge for, at return-sætningen altid er den sidste kodelinje i en funktion.
Eksempel:

public class Main
{
	public static void main(String[] args) {
	    
	  System.out.println("The java unreachable statement");
      
      System.out.println("I will not  be printed");
	return;
 
        
	}
}

Output:

The java unreachable statement
I will not  be printed

Uendelig sløjfe

En uendelig løkke er en endeløs løkke. Dens kode bliver ved med at gentage løkkens placering, hvorfor enhver kode skrevet efter løkken aldrig vil blive udført.
Eksempel:

public class Main
{
	public static void main(String[] args) {
	    
	  for(;;){
       break;
        
       System.out.print("I'm outside the infinite loop");
	  }
        
	}
}

Output:

Main.java:10: error: unreachable statement
       System.out.print("I'm outside the infinite loop");
       ^
1 error

Den uendelige løkke-kode udfører løkken for evigt. Dette kan opbruge CPU'en, hvilket forhindrer andre programmer i at blive udført. Som programmører blokerer eller slumrer vi løkken ved at tilføje break-sætningen for at lade andre applikationer køre. Enhver kode efter break-sætningen vil aldrig blive udført. For at løse dette skal du sørge for, at der ikke er skrevet kode efter at have sovet eller blokeret den uendelige løkke.

Enhver erklæring efter fortsæt

fortsæt sætning gennemtvinger udførelsen af ​​en løkke i en kode. Enhver sætning efter continue-sætningen vil ikke blive udført, fordi udførelsen hopper til toppen af ​​løkken for at fortsætte med udførelsen af ​​den forrige kode.
Eksempel:

public class Main
{
	public static void main(String[] args) {
	    
	   for (int j = 0; j < 5; j++)
        {
             System.out.println(j);
            continue;
           System.out.println("Java unreachable statement");
       }        
	}
}

Fjernelse af printsystemet uden for funktionen vil få den forældede kode til at køre.

public class Main
{
	public static void main(String[] args) {
	    
	   for (int j = 0; j < 5; j++)
        {
             System.out.println(j);
            continue;
          
        }

      System.out.println("Java unreachable statement");
        
	}
}

Output:

0
1
2
3
4
Java unreachable statement

Enhver erklæring efter pause

Break-sætninger bruges til at afslutte en løkke. Enhver kode efter break-sætningen betyder, at koden ikke vil blive kompileret, da programmets kørsel blev afsluttet af pausen. Dette vil resultere i java unreachable-erklæringen.

public class Main
{
	public static void main(String[] args) {
	    
	   for (int i = 0; i < 5; i++)
        {
            System.out.println(i);
            break;
        System.out.println("Java unreachable statement");
          
        } 
	}
}

Output:

Main.java:10: error: unreachable statement
        System.out.println("Java unreachable statement");
        ^
1 error

Enhver erklæring efter at have kastet en undtagelse

Alle udsagn tilføjet i en try-catch-blok efter at have kastet en undtagelse er en død kode. Dette skyldes, at den ekstraordinære hændelse tvinger udførelsen til at hoppe til catch block-sætningen.
Eksempel:

public class Main
{
	public static void main(String[] args) {
	    
	   try {
            throw new Exception("New Exception");
            //java Unreachable code
            System.out.println("Dead code");
        }
        catch (Exception exception) {
           
            System.out.print("Home");
        }
	}
}

Output:

Main.java:9: error: unreachable statement
            System.out.println("Dead code");
            ^
1 error

Fjernelse af erklæringen efter try-catch-blokken udskriver "hjem".

Home

Utilgængelig mens loop

En while-løkke er en gentaget kodeblok, indtil en specifik betingelse er opfyldt eller sand. Hvis betingelsen i en while-løkke aldrig er opfyldt eller sand, vil koden inde i løkken aldrig køre, hvilket resulterer i en uopnåelig sætning.

public class Main
{
	public static void main(String[] args) {
	    
	   while(2>5){
            System.out.println("The greates value is 5");
      }
	}
}

Output:

Main.java:6: error: unreachable statement
	   while(2>5){
	             ^
1 error

I ovenstående kode vil 2 nogensinde være større end 5; derfor vil denne betingelse aldrig være sand. Enhver erklæring efter denne betingelse vil aldrig blive udført.

Sådan løses java unreachable statement

Løsning af denne fejl kan helt afhænge af dine programmeringsevner. Der er dog vigtige ting, som du altid ikke bør gøre som programmør.

  1. Placer ikke nogen kode efter den uendelige løkke
  2. Du bør ikke lægge nogen udsagn efter retur-, brud- og fortsæt-udsagn.
  3. Undgå at sætte nogen kode efter tyr-fangstblokken

Konklusion

Det er altid godt som programmør at undersøge strømmen af ​​din kode for at sikre, at hver sætning i koden er tilgængelig. Du kan altid tegne et flowchart for at få en dyb forståelse af strømmen af ​​loops. I dette selvstudie har vi diskuteret de mulige årsager til java unreachable-erklæringen, og hvordan man løser det.


God læring!


Java tag