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

Yazar: Laura McKinney
Yaratılış Tarihi: 1 Nisan 2021
Güncelleme Tarihi: 6 Mayıs Ayı 2024
Anonim
Keşke Daha Önce Öğrenseydik Dediğimiz Zaman Kazandıran 14 Bilgisayar Tüyosu
Video: Keşke Daha Önce Öğrenseydik Dediğimiz Zaman Kazandıran 14 Bilgisayar Tüyosu

İçerik


Atma ve atma, istisna işlemlerinde kullanılan anahtar kelimelerdir. atmak Anahtar sözcük, programlayıcı tarafından oluşturulan istisna örneğini JVM'ye manuel olarak aktarmak için kullanılır. atar yöntemde ortaya çıkan istisnayı işleme sorumluluğunu devralmak için kullanılan anahtar kelime, arayan yöntemine. 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.

  1. Karşılaştırma Tablosu
  2. Tanım
  3. Anahtar Farklılıklar
  4. Sonuç

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ı

Anahtar kelime “atmak”Yarattığımız istisna örneğimizi JVM'ye (Java Sanal Makinesi) elle 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ılamayan sınıf örneği throw anahtar sözcüğü kullanılarak atılamaz.

Anahtar kelime atmayı anlamak için bir örnek verelim.

Sınıf Testi {Public static void main (String args) {yeni Atmak ArithmeticException ("/ sıfır"); }}

Yukarıdaki kodda, anahtar kelimesi atma "ArithmeticException" kural dışı durum 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 direk atma ifadesinden hemen sonra herhangi bir basamak yazarsak, derleyici bir hata gösterir, derleme sırasında ulaşılamaz bir ifade verir.
  • Throw anahtar sözcüğünü kullanarak 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ı

atar”Anahtar kelimesi, yöntemde meydana gelen istisnayı, arayan yöntemine işleme sorumluluğunu vermek 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ün kullanılmasından 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 şekli:

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ü ve yöntemde ortaya çıkabilecek istisna sınıflarının listesini içerdiğini görebiliriz. Anahtar sözcük 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ı Testi {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ı değiştirir. 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 istisna oluşursa, 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.

  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, atar anahtar kelimesini, 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.