Ankara
0 (312) 276 75 93
info@billgatesweb.com

İstisnalar – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları

Web Danışmanlık Hizmeti, Seo Hizmeti Al, Mobile Uygulama Yaptır, Back Link Satın Al, Blog Yazdırmak İstiyorum, Makale YAZDIRMA siteleri, Parayla makale YAZDIRMA, Seo makale fiyatları, Sayfa başı yazı yazma ücreti, İngilizce makale yazdırma, Akademik makale YAZDIRMA, Makale Fiyatları 2022, Makale yazma, Blog Yazdırma

İstisnalar – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları

İstisnalar – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları

İstisnalar

En iyi şekilde kullanıldığında, istisnalar bir programın okunabilirliğini, güvenilirliğini ve sürdürülebilirliğini iyileştirebilir. Yanlış kullanıldığında ters etki yapabilirler. Bu bölüm, istisnaları etkili bir şekilde kullanmak için yönergeler sağlar.

İstisnaları yalnızca istisnai koşullar için kullanın

Bir gün, şanssızsanız, buna benzer bir kod parçasına rastlayabilirsiniz. Bu kod ne yapar? İncelemeden hiç belli değil ve bu onu kullanmamak için yeterli bir sebep. Anarray öğeleri arasında geçiş yapmak için korkunç derecede kötü tasarlanmış bir deyim olduğu ortaya çıkıyor.

Sonsuz döngü, dizinin sınırları dışındaki ilk dizi öğesine erişmeye çalıştığında bir ArrayIndexOutOfBoundsException atarak, yakalayarak ve yok sayarak sona erer. Herhangi bir Java programcısı tarafından anında tanınabilen, bir dizide döngü yapmak için kullanılan standart deyime eşdeğer olması gerekiyordu.

Öyleyse neden biri, denenmiş ve doğru olanı tercih etmek için istisna tabanlı deyimi kullansın? VM tüm dizi erişimlerinin sınırlarını kontrol ettiğinden, normal döngü sonlandırma testinin (i < a.length) gereksiz olduğu ve bundan kaçınılması gerektiği şeklindeki hatalı mantığa dayalı olarak performansı iyileştirmeye yönelik yanlış yönlendirilmiş bir girişimdir.

Bu mantıkta yanlış olan üç şey var:

  • İstisnalar, istisnai durumlarda kullanılmak üzere tasarlandığından, eğer varsa, çok az sayıda JVM uygulaması performanslarını optimize etmeye çalışır. Bir istisna oluşturmak, atmak ve yakalamak genellikle pahalıdır.
  • Kodu bir try-catch bloğunun içine yerleştirmek, modern JVM uygulamalarının aksi takdirde gerçekleştirebileceği belirli optimizasyonları engeller.
  • Bir dizide döngü yapmak için kullanılan standart deyim, mutlaka gereksiz kontrollerle sonuçlanmaz; bazı modern JVM uygulamaları onları optimize eder.

Aslında, istisna tabanlı deyim, neredeyse tüm mevcut JVM uygulamalarında standart olandan çok daha yavaştır. Makinemde, istisna tabanlı deyim, 0’dan 99’a döngü yaparken standart olandan yetmiş kat daha yavaş çalışır.

İstisna tabanlı döngü deyimi yalnızca kodun amacını karartmak ve performansını düşürmekle kalmaz, aynı zamanda çalışması garanti edilmez. İlişkisiz bir hatanın varlığında, deyim sessizce başarısız olabilir ve hatayı maskeleyebilir, bu da hata ayıklama sürecini büyük ölçüde karmaşıklaştırır.

Döngünün gövdesindeki hesaplamanın, ilişkisiz bir diziye sınır dışı erişimle sonuçlanan bir hata içerdiğini varsayalım. Makul bir döngü deyimi kullanılmışsa, hata yakalanmamış bir istisna oluşturacak ve uygun bir hata mesajı ile anında iş parçacığının sonlandırılmasına neden olacaktır. Kötü özel durum tabanlı döngü deyimi kullanılırsa, hatayla ilgili özel durum yakalanır ve normal döngü sonlandırması olarak yanlış yorumlanır.

Bu hikayeden alınacak ders basittir: İstisnalar, adından da anlaşılacağı gibi, yalnızca istisnai koşullar için kullanılmalıdır; asla sıradan kontrol akışı için kullanılmamalıdırlar. Daha genel olarak, daha iyi performans sunduğu iddia edilen aşırı akıllı deyimler yerine standart, kolayca tanınabilir deyimler kullanmalısınız.


Java
Java Exception nedir
Eski Java
Java klasörü
Java hata yakalama
Java JDK Uninstall
Java Denetim Masası
Java Control


Performans avantajı gerçek olsa bile, sürekli gelişen JVM uygulamaları karşısında kalmayabilir. Bununla birlikte, aşırı akıllı deyimlerden kaynaklanan ince hatalar ve bakım baş ağrıları kesinlikle devam edecektir.

Bu ilkenin API tasarımı üzerinde de etkileri vardır. İyi tasarlanmış bir API, istemcisini olağan kontrol akışı için istisnaları kullanmaya zorlamamalıdır.

Yalnızca belirli öngörülemeyen koşullar altında çağrılabilen “duruma bağlı” bir yönteme sahip bir sınıf, genellikle ilk yöntemi çağırmanın uygun olup olmadığını gösteren ayrı bir “durum testi” yöntemine sahip olmalıdır. Örneğin, Iterator sınıfı, yinelemedeki sonraki öğeyi döndüren duruma bağlı next yöntemine ve karşılık gelen durum testi yöntemi hasNext’e sahiptir. Bu, bir koleksiyon üzerinde yineleme yapmak için standart deyimi etkinleştirir.

Bu öğeyi başlatan dizi yineleme örneğinden sonra bu çok tanıdık gelmelidir. Sözcük ve yanıltıcı olmanın yanı sıra, istisna tabanlı deyimin standart olandan önemli ölçüde daha kötü performans göstermesi muhtemeldir ve sistemin ilgisiz bölümlerindeki hataları maskeleyebilir.

Ayrı bir durum sınama yöntemi sağlamaya bir alternatif, duruma bağlı yöntemin, nesneyle uygun olmayan bir durumda çağrılması durumunda null gibi ayırt edici bir değer döndürmesini sağlamaktır. null sonraki yöntem için geçerli bir dönüş değeri olduğundan, bu teknik Yineleyici için uygun olmaz.

Durum testi yöntemi ile ayırt edici bir dönüş değeri arasında seçim yapmanıza yardımcı olacak bazı yönergeler aşağıda verilmiştir. Bir nesneye aynı anda harici senkronizasyon olmadan erişilecekse veya harici olarak indüklenen durum geçişlerine tabiyse, nesnenin durumu bir durum testi yönteminin başlatılması arasındaki aralıkta değişebileceğinden, ayırt edici bir dönüş değeri kullanmak gerekli olabilir. 

Performans endişeleri, ayrı bir durum test yöntemi zorunlu olarak duruma bağlı yöntemin çalışmasını kopyalayacaksa, ayırt edici bir dönüş değerinin kullanılmasını gerektirebilir. Bununla birlikte, diğer tüm şeyler eşit olduğunda, bir durum testi yöntemi, ayırt edici bir dönüş değerine göre orta derecede tercih edilir. Biraz daha iyi okunabilirlik sunar ve uygunsuz kullanımın tespit edilmesi ve düzeltilmesi daha kolay olabilir.

  • Kurtarılabilir koşullar için kontrol edilen istisnaları ve programlama hataları için çalışma zamanı istisnalarını kullanın

Java programlama dili üç tür atılabilir öğe sağlar: kontrol edilen istisnalar, çalışma zamanı istisnaları ve hatalar. Programcılar arasında, her tür atılabilir silahın ne zaman uygun olduğu konusunda bir miktar kafa karışıklığı var. Karar her zaman net olmasa da, seçimi kolaylaştırmaya yönelik uzun bir yol kat eden bazı genel kurallar vardır.

İşaretli veya işaretlenmemiş bir istisnanın kullanılmasına karar verirken temel kural şudur: Arayanın makul bir şekilde kurtarmasının beklenebileceği koşullar için işaretli istisnaları kullanın.

İşaretli bir istisna atarak, arayanı istisnayı bir catch yan tümcesinde işlemeye veya dışarı doğru yaymaya zorlarsınız. Bir yöntemin fırlatmak için bildirildiği her bir denetlenen istisna, bu nedenle, API kullanıcısına, ilişkili koşulun yöntemi çağırmanın olası bir sonucu olduğuna dair güçlü bir göstergedir.

API tasarımcısı, kontrol edilen bir istisna ile API kullanıcısını karşı karşıya getirerek, durumdan kurtarma yetkisi sunar. Kullanıcı, istisnayı yakalayıp yok sayarak bu talimatı göz ardı edebilir, ancak bu genellikle kötü bir fikirdir.

İki tür denetlenmeyen fırlatılabilir öğe vardır: çalışma zamanı istisnaları ve hatalar. Davranışları aynıdır: Her ikisi de yakalanmaması gereken ve genellikle yakalanmaması gereken fırlatılabilir nesnelerdir.

Bir program denetlenmeyen bir istisna veya hata atarsa, genellikle kurtarmanın imkansız olduğu ve devam eden yürütmenin yarardan çok zarar vereceği durumdur. Bir program böyle bir fırlatılabiliri yakalayamazsa, mevcut iş parçacığının uygun bir hata mesajı ile durmasına neden olur.


Web sitelerinizi, arama motorlarında en yukarı getirmek adına sizlere 3 adet paket öneriyoruz. Bu paketler sayesinde web siteleriniz aramalarda 1 yıl içerisinde en yukarıya tırmanacaktır. 

1) Backlink Paketi  50 $ (Yıllık Ücret)
2) Hızlandırma Paketi 300 $ (Yıllık Ücret)
3) Kelime Yönlendirme Paketi 150 $ (Aylık Ücret)


 

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

× Bize Whatsapp'tan Ulaşın