CodeGym /Java Blogu /Rastgele /Java'da Ulaşılamaz İfade Kodu Hatası
John Squirrels
Seviye
San Francisco

Java'da Ulaşılamaz İfade Kodu Hatası

grupta yayınlandı
Erişilemeyen bir kod ifadesi, Java'ya yeni başlayanlar arasında yaygın bir sorundur. Pek çok acemi geliştirici, hatayı Java ile ilgili başka bir fenomen olan "ölü kod" ile karıştırır. İkisi tezahür olarak benzer olsa da, bu yazıda ele alacağımız bazı farklılıklar var. Bunun dışında, derleyicinizin erişilemeyen bir kod deyimi döndürmesinin en yaygın nedenlerinin neler olduğunu öğrenecek ve kodunuzu tekrar çalışır duruma getirmek için bazı kolay düzeltmeler keşfedeceksiniz.

Ulaşılamaz Kod Nedir?

Tanım gereği, erişilemez bir ifade, konuşlandırmaya hazır kod çalıştırdığınızda bir derleyici tarafından yürütülmeyecek olan ifadedir. Ulaşılamaz bir kod döndürme ifadesi, genellikle program içindeki mantıksal bir hatanın işaretidir. Böyle bir bildirimde bulunmanızın birkaç nedeni olsa da, her durumda, erişilemeyen kod gereksizdir, programınızı karıştırır ve ne pahasına olursa olsun kaçınılmalıdır.

Ulaşılamayan Kod ve Ölü Kod

Geliştirme topluluğunda, "ulaşılamaz" ve "ölü" kod kavramları pratikte eşanlamlıdır. Bununla birlikte, belgeleri okurken titiz davranırsanız, geliştirme yönergelerinin genellikle ikisinden ayrı ayrı bahsettiğini görebilirsiniz. Ölü ve ulaşılamaz kod arasında herhangi bir fark var mı? Temel olarak, iki hata arasındaki fark, derleyicinin bunlara tepki verme biçimindedir. Derleyiciye girdiğiniz kod erişilemiyorsa , Java bildiriminde derleme çalışma zamanı hatası alırsınız. İfadeniz " ölü kod " ise, çalışma zamanı hatası olmaz - bir geliştirici aşağıdaki sistem uyarısını alır:

class DeadCode {
    void deadcode_Method(boolean b) {
    System.out.println("Reachable statement");
        if(true) {
        return;
        }
    System.out.println("Unreachable statement"); // dead code
    }
}
Ölü kod durumunda doğrudan derleyici hatası olmadığı için tespit edilmesi daha zordur. Ancak, System.out.printIn dönüşlerini dikkatli bir şekilde takip ederseniz , ölü kodu yakalamak size sorun çıkarmaz.

Neden Ulaşılamaz Kod İfadeleri Alıyorsunuz?

İyi haber şu ki, ulaşılamayan kod sorunlarının nedenini bulmak kolaydır. Derleyicinizin sürekli hata döndürmesinin üç ana nedeni vardır:
  • Açıklamaları aktarın. Kodunuzu bir dönüş ifadesiyle kırarsanız, "return = true" ifadesinden sonra hiçbir şey yürütülmez.
  • Sonsuz döngü - sistem döngü eylemini yinelemeye devam edeceği için sonsuz döngüden sonra yazdığınız hiçbir kod yürütülmez. Böylece kodunuzu bayt koduna dönüştürürken derleyici unreachable code hatası gönderecektir.
Bu sorunları işaretlemenize ve düzeltmenize yardımcı olmak için, onları yakınlaştıralım.

İade beyanları

Bir dönüş ifadesi, Transfer anahtar kelime grubunun bir parçasıdır, yani yönteminizi sonlandırır. İşlevleri ayırmak için yararlıdır ve kodunuzu okunabilir ve temiz tutmanıza yardımcı olur. Ancak, return = true'dan sonra fonksiyona yeni ifadeler ekleyemediğiniz için, anahtar kelimeden sonra fonksiyona devam etmeye çalışmak size “Ulaşılamaz kod” derleyici hatası verecektir. Bir "return = true" yanlış işleme örneğine ve bir derleyicinin buna tepki verme biçimine bir göz atalım.

class GFG {
    public static void main(String args[])
    {
  
        System.out.println("My code will run");
  
        return;
  
        // ironically, this code will never run
        // here’s an unreachable code message a developer gets.
        System.out.println("My code will run");
    }
}
Bir dönüş ifadesinin kötüye kullanımı derleyicide şu şekilde görüntülenecektir:

prog.java:11: error: unreachable statement
System.out.println(“My code will run”);
^
1 error
Öğrendiklerinizi pekiştirmek için Java Kursumuzdan bir video dersi izlemenizi öneririz.

Son ifadeler

Break deyimleri, Java işlevlerini yazarken dikkatli olmanız gereken başka bir anahtar kelime türüdür. Tanım olarak, bir döngüyü sonlandırmak için break anahtar sözcüğü kullanılır. Aşağıdaki örnekte, bir geliştirici döngüden çıktığında artık ifadeyi 8. satırda çalıştıramayacak - bu nedenle derleyici unreachable ifade hatası gösterecektir. Ulaşılamaz bir kod deyimiyle sonuçlanacak örnek kod aşağıdadır:

public class JavaCodeGeeks
     {
    public static void main(String[] args) {
     for(int i=1;i<5;i++)
        {
        System.out.println(i);
        break;
        System.out.println("Code after break");
        }
    }
}
Hataya derleyici açısından baktığınızda aşağıdaki hata bildirimini alırsınız.

JavaCodeGeeks.java:8: error: unreachable statement
System.out.println("After break");
                ^
1 error

Açıklamalara devam et

Devam, eylemleri yinelemek için kullanılan bir döngü kontrol anahtar sözcüğüdür. Bir döngünün yürütülmesinin kendi başına sıfırdan başlamasını istediğinizde, kodunuza devam ekleyin. İfade, geliştiricilerin döngünün hangi ifadelerini yinelemek istediklerini ve yinelemede yer almayacaklarını seçmelerine yardımcı olmak için kullanışlıdır. Devam etmek basit bir anahtar kelime olsa da, nasıl çalıştığına dair tam bir anlayışa sahip olmamak, geliştiricileri "ulaşılamaz kod" tuzağına götürür. Bir devam ile karşılaşan sistem döngüyü yineleyeceğinden, anahtar kelime kendisini takip eden deyimlere ulaşamayacaktır. Diyelim ki, aşağıdaki koda sahipsiniz:

public class JavaIsFun
{
    public static void main(String[] args) {
        for(int i=0;i<8;i++)
        {
            System.out.println(i);
            if(i==5)
            {
                continue;
                System.out.println("Coding after continue");
            }
        }
    }
}
Sistem, "Devam ettikten sonra kodlama" ifadenizi yürütmeyecektir - derleyici bunu size hemen bildirecektir.

JavaIsFun.java:10: error: unreachable statement
                                System.out.println("Coding after continue");

sonsuz döngüler

"break" ve "continue" anahtar kelime kullanım örneklerine benzer bir senaryo, sonsuz döngü senaryosudur. Bir sonsuz döngü tasarlarken, bir geliştirici bundan sonra hiçbir ifadenin çalışmayacağını hatırlamalıdır. Bu nedenle, döngüyü kırmazsanız, sonrasında yazılan hiçbir koda erişilemez. İşte kontrol etmek için sonsuz döngü yanlış kullanımına ilişkin ilginç bir örnek:

public class JavaCodeGym
{
    public static void main(String[] args) {
        while(true)
        {
            System.out.println("Hey there");
        }
        System.out.println("Nice to see you");
    }
}
Hatanın nerede saklandığını tahmin edebilir misiniz? Derleyici, kodunuzu çalıştırdığınızda hemen işaret edecektir:

//unreachable code statement compiler error
JavaCodeGym.java:10: error: unreachable statement
                System.out.println("Nice to see you");
‘
"Sizi görmek güzel" ifadesinden önce sonsuz bir döngü olduğu için , ifade hiçbir zaman yürütülmeyecek ve ulaşılamaz bir kod hatası döndürmeye devam edecektir.

Çözüm

Erişilemeyen koddan kaçınmak için, tüm sistem ifadelerinizde bir akış olduğundan emin olmanız gerekir. Java'nın erişilemeyen kod sorunlarının çoğu, anahtar sözcükleri işlemek ve döngüleri kötü bir şekilde yönetmekle ilgilidir. Günün sonunda, erişilemeyen kod hatalarından kaçınmanın tek denenmiş ve doğru yolu kodunuzu tekrar kontrol etmektir. Onlar tarafından da cesaretiniz kırılmamalıdır - akıcı Java kodu oluşturma alışkanlığı, yılların deneyimi ve pratiğiyle gelir. Öyleyse, IDE'ye geçelim ve harika yazılım ürünleri oluşturmaya başlayalım.
Yorumlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION