BilgisayarlarProgramlama

Java: istisnalar ve bunların kullanım

Herhangi bir program kaynak kodu debug yalnızca kararlı bir şekilde çalışacaktır ve öngörülemeyen durumlara neden olabilir herhangi bir koşul aranmıyor. olası arızaları yakalanma süreci programlama sahnede gerçekleştirilir. Bunu yapmak için, geliştirici beklenen tüm sonuçlar dikkate alır ve programın çalışmasına engel ya da düşmesine yol değil diye hata etkisini sınırlamak için çalışır.

Eğer durum işleme gerekebilir zaman

Java da, bir istisna, yanlış kullanıcı girişi ile kaynak veya ani ağ kopması programına gerek kaynaklanabilir. Uygulama geliştiricisi tarafından oluşturulan rahat kullanım için, acil durumlarda oluşumunu kontrol etmelidir. Tüketici istisnası veya bir şeyler ters gitti olduğu uyarısı mesajın sadece bir kısmının sonucunda veri kaybetmek, bir uygulamayı çıkmak için beklemek zorunda olmamalıdır.

Java istisnalar Handling

Göz önüne alınması gerekenler? Java dilinin kendi yerleşik istisna işleme işlevselliği vardır. Tabii ki, hatanın büyük bir yüzdesi başka derleme aşamasında tarafından yakalanır, sistem otomatik olarak artık mümkün olduğunu kullanımını bildirir. Ama zamanında meydana istisna bu tür var. geliştirici bunu tahmin ve bir hataya neden olmadı ki kod tasarlayabilmek ve özel bir şekilde işlenmiş ve başka şubesine kontrolü devretti olmalıdır.

Java da, bu bir istisna yakalamak için derleyici tarafından dayatılan, bu nedenle tipik sorunlar bilinmektedir ve standart bir egzersiz desenleri var.

tipik dışlamaları

Bu bölünme - Bir istisna alabileceğiniz en basit örneği,. sadeliği rağmen açısından, bir bölücü olarak, bir hata ile sonuçlanır sıfır olabilir. Eh, eğer mümkünse geçmişte ortaya çıkmasını tahmin etmek ve önlemek için. Ama bu seçenek her zaman mevcut değil, yani istisna yakalama "sıfıra bölme" durumunda doğrudan düzenlenmelidir.

işleme hatasıyla yolunu kesmek için Java mekanizması aşağıdaki gibidir:

  • Yığın durum nesnenin yanı sıra herhangi bir başka şekilde oluşturulur;
  • Programın doğal seyri kesilir;
  • dışlama mekanizması kodunu devam için alternatif bir yol bulmaya çalışıyor;
  • işlemci, çalışmalarında programının güvenli yürütülmesini bulun veya restore veya özel bir şekilde istisna gerçekleşmesini meydana gelecektir.

Bu gibi görünebilir bir hata oluşturarak en basit örneği:

Eğer (a == null)

) (Yeni NullPointerException atmak;

Burada, değişken bir başlatma kontrol edilir, yani olan bir boş nesne referans olup. Bu durumun ortaya ve özel uygulama gerektiren varsa, bir istisna bir atış yeni NullPointerException tarafından atılan ().

anahtar kelimeler hakkında birkaç detay

istisnalar ile uğraşırken belirli bir eylem başvurmak için anahtar kelime Java kullanılması genellikle gereklidir. Onların beş programlama Bu dil:

  • Deneyin. Bu anahtar kelime olduğunu zaten bir araya geldi ve bir istisna atabilen bir kod bölümüne bir geçiş anlamına gelir. Blok sınırlı parantez {}.
  • Yakalama. Bu istenen istisna tipini yakaladığını gereğince çözmesi.
  • Nihayet. Bu anahtar kelime durum yakalandı olmasa bile, isteğe bağlıdır ve yine gerekli kod, belli bir parça gerçekleştirmek için kullanılır. try bloğundan hemen sonra eklendi.
  • Atmak - her yerden Java istisnalar oluşturmanızı sağlar.
  • Atar - yöntem imzası yerleştirilir bir anahtar kelime. Aşağıdaki kod, bu tip bir Java bir istisna anlamına gelir. Ondan beklendiği gibi yöntem işe olamaz - Bu işaret akılda tutulmalıdır gereken geliştiriciler için bir sinyal olarak hizmet vermektedir.

Bir deneyin ile yakalamak

Java istisnalar Yayın, doğal olarak özel bir şekilde ele alınacaktır varsayar. Kod bölüm bloğunda çit eğer en uygun yolu, bunu yapmak için. Hangi istisna içerebilir. Bu kodu çalıştırdığınızda, sanal makine, beklenmedik bir durum bulmak orada kritik bir bloktur ve transferler işleme istasyonuna kontrol anlayacaktır.

Java kod bir istisna olabilir, içinde özel bir blok denemede, içinde sarılır. Böylece aynı yerde değil, raspolzayas kod yakalanacak birçok öngörülemeyen durumlar yerleştirilir.

aşağıdaki gibi işlem birimine en tipik kodudur:

try {

// Burada bir istisna oluşturabilir bazı koddur

} Yakalama (Tip_isklyucheniya_1 identifikator_1) {

// Burada istisna işleme, orada türünün ve koşullara göre;

} Yakalama (Tip_isklyucheniya_2 identifikator_2) {

// Burada istisna işleme, orada türünün ve koşullara göre;

}

Kelime yakalamak onun tip uyması koşuluyla, aşağıda açıklandığı gibi, tedavi edilecek bu kodu bildirir ve bir istisna için tarayın. tanımlayıcı bağımsız değişken olarak kod bloğunu işleme de kullanılabilir.

nihayet

önceki bölümden belli oldu gibi, catch blokları durumları yakalamak ve bunları işlemek. Ama çok sık durum olursa olsun hataları yakalandı olsun, bazı kodlar çalıştırmak gereken yerde ortaya çıkar. Bunun için son olarak anahtar kelime vardır. Dosyaları veya ağ bağlantılarını kapatan çeşitli sayaçların değerleri artırmak için kullanılır.

Bu arsa birkaç catch blokları yöntemler istisnaları yakalamak icat sunar. Örneğin, denemede yer alan kod Cold gibi beklenmedik bir durum oluşturur. Ardından, konsol «! Soğuk yakalandı» ifadesi görüntülenir Ve edilecektir «şey ne olacak? Tezahürat mı». Yani nihayet blok her durumda yürütülür vardır.

Aslında, bir yol nihayet orada tetikleme önlemek için. Bu sanal makine tamamlanması ile bağlanır. Bunu nasıl uygulanacağı bul, Internet açık alanlar mevcuttur.

Atma anahtar

Atma bir istisna oluşturur. şöyle Onun sözdizimi:

) (Yeni NewException atmak;

tip NewException için yeni bir istisna vardır oluşturulur (). kullanılabilecek bir türü zaten standart Java kütüphanesi sınıfları dahil edilir ve daha önce kendi üretiminin geliştiricisi tarafından tanımlanır gibi.

Bu tasarım çağrı sonra bunları yakalamak edebilmek amacıyla, try bloğu içinde meydana gelmelidir herhangi bir yöntemle açıklamasında, bir parçasıdır.

Kelime atar

Hangi yöntemle bir istisna, ancak düzgün işlemek mümkün değildir bir durumun gelişme sürecinde eğer. Bu amaçla, yöntem imzası kelime atar ve olası istisnaların tipi belirtir.

Bu etiket yöntemi kendi Aynı durum işlenecek mümkün olmadığını istemci geliştiriciler için göstergesinin bir türüdür. Hata türü işaretlendiğinde Buna ek olarak, daha sonra derleyici açıkça zorlar bunun için sormak.

kaynaklara deneyin

Java sürümü 7 geliştiricileri kaynaklarla tedavi deneyin blok olarak büyük bir yenilik, dahil ettik.

Kullanım kaynakları korumak için kapatılması sonrasında pek çok nesne, Java oluşturulur. Daha önce bunu dikkate ve el ile bu örneklerini durdurmak zorunda kaldı. Ancak şimdi, onlar AutoClosable arayüzü ortaya çıktı. Otomatik olarak bir try bloğu içine yerleştirilmiş zaten kullanılan nesneleri kapatmak için yardımcı olur. Bu yaklaşım sayesinde onun okunabilirliği önemli ölçüde artar kod yazmak için daha uygun hale gelmiştir.

Kendi sınıfları Java istisnalar

açıklanan programlama dilinin yaratıcıları acil tasarım tiplerinin hesap birçok yönlerini içine aldı. Ancak, tüm seçenekleri Java kendi istisnalarını tanımlama yeteneği uygulanan pek olayların ortaya çıkardığı sonuçlar, işe yaramaz önlemek için, bu belirli kod ihtiyaçlarına uygundur.

En basit yolu oluşturmak için - nesne bağlamında en uygun devralmak.

, İstisna devralmak için kendi özel durumları tanımlamak için kullanılır sınıfı vardır oldu. Varsayılan bir ikinci - - argüman msg tipi dize ile MyException iki oluşturucusu yok.

Ardından imzayı içeren kamu sınıf FullConstructors uygulanan yöntem f, içinde MyException atar. Bu anahtar kelime f Java MyException istisna gibi atmak anlamına gelir. Ayrıca, yöntem vücutta atmak tarafından konsolun kendisi ve gerçek nesil MyException, metin bilgileri çıkış üretti.

İkinci yöntem yakalamakta konsolda yansıyacak istisna oluşturmak, bunun bir dize parametresi geçirilir o ilki biraz farklıdır. Ana yılında f () ve g () try denetimi yerleştirilir ve anahtar kelime yakalama MyException yakalamak için yapılandırılmış olduğu açıktır. işlemenin sonucu konsoluna bir hata mesajı göstermektir:

Böylece kendi eliyle, Java istisnalar eklemek için geldi.

Mimarlık istisnalar

Java tüm nesneler gibi, istisnalar da kalıtsal ve hiyerarşik yapısına sahiptir. Bu programlama dilinde atılan tüm hataların kök öğesi sınıfı java.lang.Throwable olduğunu. Onu iki çeşit devralındı - Hata ve istisna.

Hata - kritik hatası sinyaller ve kontrolsüz Java istisnalar olduğunu. çoğu durumda Kesişme ve işleme tür veri tasarım aşamasında gerçekleşir ve nihai uygulama kodunda tanıtan muhtaç.

oluşturma ve durumları analiz etmek için en sık kullanılan sınıf İstisna. Ki, sırayla, RuntimeException dahil olmak üzere birçok dalları, ayrılmıştır. RuntimeException By programı sırasında meydana gelen, yani çalışma zamanı istisnaları vardır. bundan elde edilen tüm sınıfları Doğrulanamaz bulunmaktadır.

Genellikle istisnalar da vardır

Java istisnalar olarak, kullanıcıların listesi ayrıntılı olarak bunların her açıklamalıdır nedenle, en sık kullanılan, aşağıda sunulmuştur:

  • ArithmeticException. Bunlar aritmetik işlemlerle ilişkili hataları içeriyor. en göze çarpan örneği, - Sıfıra bölme.
  • ArrayIndexOutOfBoundsException - uzunluğunun toplamından daha fazla dizi elemanı numarasına bir çağrı.
  • ArrayStoreException - dizinin uyumsuz bir element tipi atamak için girişimde.
  • ClassCastException - diğerine yanlış bir tür getirmek için bir girişim.
  • IllegalArgumentException - Çağırılırken yanlış argümanı kullanarak.
  • NegativeArraySizeException - Olumsuz boyutta bir dizi oluşturmak bir istisna.
  • NullPointerException - referansların yanlış null.
  • NumberFormatException - Bir yanlış dize dönüştürme tamsayı oluşur.
  • UnsupportedOperationException - işlem desteklenmiyor.

Bu örnekler kontrolsüz Java istisnalar türlerini temsil eder. Ama bu kadar kontrol bak:

  • ClassNotFoundException - Sınıf bulunamadı.
  • IllegalAcccessException - sınıfına erişimi kısıtlamak.
  • InterruptedException - akışının kesilmesi.
  • NoSuchFieldException - hayır zorunlu alan vardır.

istisnalar yorumlanması

Sık karşılaşılan istisnalar konuşan tasarımında onların yorumlanması yanlış algılanabilir unutulmamalıdır. Sonraki beklenmedik bir durum olabilir daha detaylı olarak açıklayan kısa listesidir.

NullPointerException. , Bir istisna vardır, ilk durumda eşit olup, bir nesne için bir referans hitap etmek. Ayrıca sıfır sınıf örneği yöntemlerine uzanmaktadır. NullPointerException eşit uzunlukta boş bir dizi elde edilmesi halinde atılabilir. periyodik boş siteleri kontrol edecek tür durumlardan kaçınmak için.

ArrayIndexOutOfBoundsException. Herhangi bir program Dizilerin kullanımı olmadan var olamaz. Buna uygun olarak, bu sık sık rücu oluşturmak ve hata olabilir. Bir geliştirici endeksi listesinde olmayan bir dizi elemanı erişmeye çalıştığında İstisna oluşur. Örneğin, istenen bir değeri, yukarıda ya da sıfır uzunluğun altındadır. Çoğu zaman dizideki sıfır puanla başlar gerçeğinin bir sonucudur.

bulgular

Java istisnalar Taşıma - büyük ölçüde programcı çalışmasını kolaylaştırır ve onu temiz ve kod hataları yoksun bir oluşturmanıza olanak sağlayan güçlü bir araçtır ortamı. ne kadar düzgün ve kararlı işleyen başvurusu üzerine geliştirici durumu ve itibar bağlıdır.

Tabii ki, bir az ya da çok basit programlarda anormal durumları çok daha kolay iz. Ama birkaç yüz bin hatları için büyük otomatik komplekslerinde sadece uzun vadeli test ve hata ayıklama sonucunda mümkündür.

onlar meraklılarını bulunca bazı uygulamalarda ortaya çıktığı Java istisna hatası için, bazı şirketler bir ödül sunuyoruz. Özellikle güvenlik politikası yazılımının bir ihlaline neden olanlar tarafından takdir.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 tr.delachieve.com. Theme powered by WordPress.