Tavsiye, 2024

Editörün Seçimi

Java ile fırlatma ve fırlatma arasındaki fark

Atma ve atma, istisna işlemlerinde kullanılan anahtar kelimelerdir. Throw anahtar sözcüğü, programcı tarafından oluşturulan özel durum örneğini JVM'ye manuel olarak aktarmak için kullanılır. Atılan anahtar kelime, yöntemde ortaya çıkan istisnayı arayan yöntemine işleme sorumluluğunu devretmek için kullanılır. Fırlatma ve fırlatma arasındaki temel fark, throw anahtar sözcüğünün istisna nesnesini kullandığı, throw anahtar sözcüğünün istisna sınıflarının adını kullanmasıdır.

Karşılaştırma Tablosu

Karşılaştırma Temelleriatmakatar
TemelThrow anahtar sözcüğü, yaratılan istisna nesnemizi JVM'ye manuel olarak aktarır.Throws anahtar sözcüğü, kural dışı durumun ele alınma sorumluluğunu yöntemin arayanına devretmek için kullanılır.
Sözdizimiatılabilir örneği atmak;return_type yöntemi_adı (parametre listesi) ExceptionClass_list'i atar
{
// yöntem gövdesi
}
Bunu takibenThrow anahtar sözcüğünü istisna nesnesi izler.Throw anahtar sözcüğünü, yöntemde ortaya çıkabilecek istisna sınıflarının listesi izler.
Atılan İstisna SayısıThrow anahtar sözcüğü tek bir istisna örneği atabilir.Throws anahtar sözcüğü, virgülle ayrılmış çoklu istisna sınıflarını bildirir.

Throw'un tanımı

Throw ” anahtar kelimesi, yaratılan istisna örneğimizi JVM'ye (Java Sanal Makinesi) manuel olarak teslim etmek için kullanılır. Bir istisna örneği atmak için “throw” kullanılmazsa ve istisna meydana gelirse, çalışma zamanı sistemi istisna örneğini dahili olarak JVM'ye atar ve program olağandışı bir şekilde sona erer. Throw anahtar sözcüğünün genel şekli:

 Atmak Atılabilir_instance; 

Throwable_instance'ın üstünde, Throwable sınıfının bir nesnesi olmalıdır. İnt, float veya char gibi ilkel türler ve atılamaz sınıf örneği throw anahtar sözcüğü kullanılarak atılamaz.

Atma anahtar sözcüğünü anlamak için bir örnek verelim.

 Sınıf Testi {Public static void main (String [] args) {new new ArithmeticException ("/ sıfıra"); }} 

Yukarıdaki kodda, anahtar kelimesi atma "ArithmeticException" Exception sınıfının bir örneğini atar. Throw anahtar sözcüğü kullanılmamışsa, main () yöntemi dahili olarak JVM'ye teslim edilen bir istisna nesnesi oluşturur.

Anahtar kelime atma hakkında hatırlanması gereken noktalar:

  • İstisna nesnesini manuel olarak JVM'ye devreder.
  • Kullanıcı tanımlı istisnalar veya özelleştirilmiş istisnalar için en iyi şekilde kullanılır.
  • Bellek throw anahtar kelimesi tarafından atılan istisna nesnesine atanmamışsa, bir çalışma zamanı istisnası, NullPointerException oluşuyor.
  • Throw anahtar sözcüğü, programın oluşumundan hemen sonra çalışmasını durdurur. throw ifadesinden sonra herhangi bir ifadeyi doğrudan yazamayız. Eğer throw ifadesinden hemen sonra herhangi bir basamak yazarsak, derleyici derleme sırasında bir hata, ulaşılamaz bir ifade gösterir.
  • Throw anahtar sözcüğü kullanılarak yalnızca Atılabilir sınıf nesnelerine atılabilir. Atılan nesne, Atılabilir bir sınıf nesnesi değilse, derleme zamanı hatası alıyoruz “Uyumsuz tür bulundu. . gerekli java.lang. Atılabilir ”

Not:

Throw anahtar sözcüğü, manuel olarak bir istisna atmak için C ++, JAVA, C # öğelerinde kullanılır.

Atarların tanımı

Throws ” anahtar sözcüğü, yöntemde meydana gelen istisnanın üstesinden gelme sorumluluğunu arayan yöntemine devretmek için kullanılır. Arayan yöntem, istisnai durumdan sorumludur, başka herhangi bir yöntem veya JVM olabilir. Bu yöntemde ortaya çıkabilecek istisna sınıflarının listesini bildirir.

Throw anahtar sözcüğünün kullanılması, derleyiciyi yöntemde ortaya çıkan istisnanın arayan yöntemiyle ele alınması gerektiği konusunda ikna eder, bu nedenle derleme hatası oluşmaz. Ancak, arayan yöntemi istisnayı ele almalı veya istisnayı hiyerarşi yöntemiyle ele alma sorumluluğunu üstlenmelidir. Çalışma zamanı istisnası gerçekleştiğinde, daha sonra throw anahtar sözcüğünü kullandıktan sonra bile, programın olağandışı bir şekilde sonlandırılmasını engellemez. Arayan yöntemi main () ise, varsayılan olarak JVM istisnayı işler.

Throw anahtar kelimenin genel biçimi şöyledir:

 return_type yöntemi_adı (parametre listesi) exceptionClass_list {// body of method} 

Atılan anahtar kelimenin, yöntemin imzasından sonra göründüğünü görebiliyoruz ve yöntemde ortaya çıkabilecek istisna sınıflarının listesini içerebiliyor. Anahtar kelime atıldıktan sonra yazılan istisna sınıflarının listesi virgülle ayrılır.

Throws anahtar sözcüğünü anlamak için bir örnek verelim.

 sınamaları Test {public static void main (String [] args), InterruptedException {thread sleep (10000); }} 

Yukarıdaki kodda, ana iş parçacığı sleep () yöntemi kullanılarak bir süre uyumak için yapılmıştır. Şimdi, ana yöntem uykudayken, diğer ipliklerin ana ipliği kesmesi mümkündür. Ancak, throws anahtar sözcüğü, main () yönteminin imzasından sonra kullanılır, böylece program kolayca derlenir. Throws anahtar sözcüğü, InterruptedException işaretli istisna sınıfını bildiriyor. Şimdi, herhangi bir başka iş parçacığı çalışma zamanı sırasında ana iş parçacığını keserse, throws anahtar sözcüğü, JVM olan main () yönteminin arayanı dışında kalanı devreder. JVM programı anormal biçimde sonlandırır.

Unutulmaması gerekenler anahtar kelimeyi atar:

  • Throws anahtar sözcüğü, yalnızca kontrol edilen istisna sınıflarını bildirmek için kullanılır. Throws anahtar sözcüğünün denetlenmeyen bir istisna için kullanılmasının etkisi yoktur.
  • Yöntem istisnayı tek başına ele almak istemiyorsa, throw'ı anahtar sözcüğünü kullanarak bu istisnayı o sınıfın arayan yöntemine devreder.
  • Kullanımı sadece programın düzgün derlenmesini sağlar.
  • Çalışma zamanında bir kural dışı durum ortaya çıkarsa, program, throw anahtar sözcüğünün kullanımından sonra bile anormal biçimde sonlandırılır.
  • Çalışma zamanında bir istisna meydana gelirse, programın normal şekilde sonlandırılması için try / catch bloğunun kullanılması önerilir.

Not:

Anahtar kelime yalnızca Java'da kullanılır. C ++ ve C #, throw anahtar sözcüğünü kullanmaz.

Fırlatma ve fırlatma arasındaki temel farklar

  1. Anahtar sözcük atma, istisna işlemenin sorumluluğunu JVM'ye manuel olarak devrederken, anahtar sözcük, istisna işleminin sorumluluğunu, bir istisna meydana gelen kodun arayan yöntemine devreder.
  2. Throw anahtar sözcüğünü, JVM'ye teslim ettiği istisna nesnesi izler. Öte yandan, atama anahtar sözcüğünü, yöntemde ortaya çıkabilecek istisna sınıfları izler.
  3. Throw anahtar sözcüğü bir seferde tek bir istisna nesnesi atabilirken, throw anahtar kelimesi bir kerede virgülle ayrılmış çoklu istisna sınıfları bildirebilir.

Sonuç:

Throw anahtar sözcüğü en iyi özelleştirilmiş özel durum için kullanılır. Try / catch bloğu, throws anahtar kelimesiyle karşılaştırıldığında istisnalar için en iyisidir.

Top