Rumah > Java > javaTutorial > Adakah hierarki ibu bapa-anak penting untuk membuang pengecualian apabila mengatasi di Jawa?

Adakah hierarki ibu bapa-anak penting untuk membuang pengecualian apabila mengatasi di Jawa?

WBOY
Lepaskan: 2023-08-19 13:49:23
ke hadapan
1325 orang telah melayarinya

Adakah hierarki ibu bapa-anak penting untuk membuang pengecualian apabila mengatasi di Jawa?

Apabila anda cuba mengendalikan pengecualian (ditanda) yang dilemparkan dengan kaedah tertentu, anda perlu menangkapnya menggunakan kelas Exception atau superclass tempat pengecualian itu berlaku.

Begitu juga, apabila mengatasi kaedah kelas super, jika ia membuang pengecualian −

  • Kaedah dalam subkelas harus membuang pengecualian yang sama atau subjenisnya.

  • Kaedah dalam subkelas tidak seharusnya membuang jenis supernya.

  • Anda boleh mengatasi tanpa membuang sebarang pengecualian.

Apabila anda mempunyai tiga kelas (hierarki) bernama Demo, SuperTest dan Super inheriting, jika Demo dan SuperTest mempunyai kaedah bernama sample().

Contoh

Demonstrasi Langsung

class Demo {
   public void sample() throws ArrayIndexOutOfBoundsException {
      System.out.println("sample() method of the Demo class");
   }
}
class SuperTest extends Demo {
   public void sample() throws IndexOutOfBoundsException {
      System.out.println("sample() method of the SuperTest class");
   }
}
public class Test extends SuperTest {
   public static void main(String args[]) {
      Demo obj = new SuperTest();
      try {
         obj.sample();
      }catch (ArrayIndexOutOfBoundsException ex) {
         System.out.println("Exception");
      }
   }
}
Salin selepas log masuk

Output

sample() method of the SuperTest class
Salin selepas log masuk

Jika kelas yang anda tangkap pengecualian tidak sama dengan pengecualian yang dilemparkan atau bukan kelas super pengecualian, anda akan mendapat ralat masa kompilasi.

Begitu juga, apabila mengatasi kaedah, pengecualian yang dilemparkan hendaklah sama dengan pengecualian yang dilemparkan oleh kaedah yang ditindih atau kelas supernya, jika tidak, ralat masa kompilasi akan berlaku.

Contoh

Demonstrasi

import java.io.IOException;
import java.io.EOFException;
class Demo {
   public void sample() throws IOException {
      System.out.println("sample() method of the Demo class");
   }
}
class SuperTest extends Demo {
   public void sample() throws EOFException {
      System.out.println("sample() method of the SuperTest class");
   }
}
public class Test extends SuperTest {
   public static void main(String args[]) {
      Demo obj = new SuperTest();
      try {
         obj.sample();
      }catch (EOFException ex){
         System.out.println("Exception");
      }
   }
}
Salin selepas log masuk

Output

Test.java:12: error: sample() in SuperTest cannot override sample() in Demo
public void sample() throws IOException {
            ^
overridden method does not throw IOException
1 error

D:\>javac Test.java
Test.java:20: error: unreported exception IOException; must be caught or declared to be thrown
   obj.sample();
              ^
1 error
Salin selepas log masuk

Atas ialah kandungan terperinci Adakah hierarki ibu bapa-anak penting untuk membuang pengecualian apabila mengatasi di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan