Jadual Kandungan
Jenis pengecualian
Pengendalian pengecualian
Tatabahasa
Kaedah 1: Gunakan satu blok cuba-tangkap
Algoritma
Contoh
Output
Kaedah 2: Gunakan satu blok percubaan dan beberapa blok tangkapan
示例
输出
Rumah Java javaTutorial Program Java yang mengendalikan kaedah pengecualian

Program Java yang mengendalikan kaedah pengecualian

Sep 12, 2023 am 11:49 AM
pengendalian pengecualian program java kaedah pengecualian

Program Java yang mengendalikan kaedah pengecualian

Pengecualian ialah peristiwa luar biasa yang mengganggu aliran pelaksanaan biasa program. Apabila pengecualian berlaku, objek yang dipanggil objek pengecualian dijana, yang mengandungi butiran pengecualian seperti nama, perihalan dan status program. Dalam bahagian ini kami akan menulis program java untuk mengendalikan kaedah pengecualian berbeza yang terdapat dalam java.

Jenis pengecualian

Terdapat tiga jenis pengecualian −

Pengecualian yang disemak − Pengecualian yang disemak ialah pengecualian masa kompilasi, yang disemak semasa penyusunan program. Pengecualian ini tidak boleh diabaikan dan mesti dikendalikan oleh pengaturcara. Contohnya: IOException, SQLException, ClassNotFounException.

Pengecualian Tidak Ditanda - Pengecualian yang tidak ditanda ialah pengecualian masa jalan, iaitu ia diabaikan semasa penyusunan dan disemak semasa pelaksanaan program. Contohnya: NullPointerException (pengecualian penuding nol), ArithmeticException (pengecualian aritmetik) dan ArrayIndexOutOfBoundsException (pengecualian tatasusunan di luar sempadan).

Ralat − Ralat ialah pengecualian yang tidak boleh dipulihkan yang biasanya berlaku disebabkan masalah dengan mesin maya Java atau sumber sistem. Ralat, tidak seperti pengecualian, tidak seharusnya ditangkap atau dikendalikan oleh pengaturcara kerana ia memberitahu kami bahawa terdapat masalah serius yang tidak dapat diperbaiki oleh program. Contohnya: OutOfMemoryError, StackOverflowError.

Pengendalian pengecualian

Pengendalian pengecualian ialah proses pengendalian pengecualian yang dilemparkan semasa pelaksanaan program supaya aliran pelaksanaan tidak terganggu. Ini dilakukan menggunakan blok cuba-tangkap dalam Java. Blok cuba mengandungi kod yang mungkin membuang pengecualian, dan blok tangkapan mengandungi kod yang mengendalikan pengecualian.

Kami boleh menggunakan pengecualian terbina dalam atau membuat pengecualian tersuai atau ditentukan pengguna. Pengecualian tersuai memanjangkan kelas Exception atau kelas RuntimeException.

Java menyediakan banyak kaedah untuk mengendalikan pengecualian ini. Antara kaedah ini ialah -

getMessage() − Kaedah ini digunakan untuk mengembalikan mesej ralat sebagai rentetan. Ini ialah kaedah yang ditakrifkan dalam kelas Throwable di Jawa.

try {
   // some code that may throw an exception
} catch (Exception e) {
   String message = e.getMessage();
   System.out.println("Exception occurred: " + message);
Salin selepas log masuk

getStackTrace() - Kaedah ini mengembalikan tatasusunan jujukan panggilan kaedah yang menyebabkan pengecualian. Ini ialah kaedah yang ditakrifkan dalam kelas Throwable di Java.

try {
   // some code that may throw an exception
} catch (Exception e) {
   StackTraceElement[] st = e.getStackTrace();
   for (StackTraceElement ele : st) {
      System.out.println(ele.toString());
   }
}
Salin selepas log masuk

printStackTrace() - Kaedah ini mencetak tatasusunan jujukan panggilan kaedah yang menyebabkan pengecualian. Ini ialah kaedah yang ditakrifkan dalam kelas Throwable di Java.

try {
   // some code that may throw an exception
} catch (Exception e) {
   e.printStackTrace();
}
Salin selepas log masuk

Throw − 'lempar' ialah kata kunci dalam Java untuk membuang pengecualian secara eksplisit. Apabila kata kunci ini dilaksanakan, aliran program biasa akan dihentikan dan ia akan membuang pengecualian, yang akan ditangkap oleh pernyataan tangkapan terdekat.

public void divide(int a, int b) {
   if (b == 0) {
      throw new ArithmeticException("Cannot divide by zero!"); // throws Arthemetic Exception
   }
   int result = a / b;
   System.out.println("Result: " + result);
}
Salin selepas log masuk

getCause() − Kaedah ini mengembalikan punca pengecualian lain yang menimbulkan pengecualian ini. Jika puncanya tidak diketahui, 'null' dikembalikan. Ini ialah kaedah yang ditakrifkan dalam kelas Throwable di Jawa.

try {
   // some code that may throw an exception
} catch (Exception e) {
   Throwable cause = e.getCause();
   if (cause != null) {
      System.out.println("Cause: " + cause.toString());
   } else {
      System.out.println("No cause found.");
   }
}
Salin selepas log masuk

Tatabahasa

try-catch block - try-catch block dalam java digunakan untuk mengendalikan pengecualian. Blok cuba mengandungi kod yang mungkin membuang pengecualian. Blok tangkapan menangkap pengecualian dan mengendalikannya. Percubaan boleh diikuti dengan satu set blok tangkapan.

try {
   // Protected code
} catch (ExceptionName e1) {
   // Catch block
}
Salin selepas log masuk

Sekarang, kami akan membincangkan secara terperinci cara pengendalian pengecualian kaedah yang berbeza di Jawa.

Kaedah 1: Gunakan satu blok cuba-tangkap

Dalam pendekatan ini, kami akan menggunakan satu percubaan dan satu blok tangkapan untuk mengendalikan pengecualian yang berlaku.

Algoritma

  • Memulakan tatasusunan dengan nilai rawak.

  • Cuba akses elemen dalam tatasusunan supaya indeks harus lebih besar daripada panjang tatasusunan. Letakkan kod ini dalam blok percubaan kerana ia akan membuang pengecualian.

  • Sebaik sahaja pengecualian berlaku, gunakan kaedah catch() untuk menangkap pengecualian ArrayIndexOutOfBounds dan gunakan kaedah getMessage() untuk mencetak mesej dan gunakan kaedah printStackTrace() untuk mencetak urutan panggilan kaedah.

Contoh

Dalam contoh ini, kami menulis kod dalam blok try and catch. Dalam blok percubaan, kami memulakan tatasusunan dengan 5 nilai dan mengakses elemen ke-8 tatasusunan, yang biasanya mengeluarkan pengecualian "ArrayIndexOutOfBoundsException" . Blok tangkapan menangkap pengecualian ini dan mencetak mesej ralat menggunakan kaedah getMessage() dan kaedah printStackTrace() digunakan untuk mencetak urutan panggilan kaedah apabila pengecualian berlaku.

import java.util.*;
public class Main {
   public static void main(String[] args) {
      try {
         int[] arr = {1, 2, 3,4,5};
         System.out.println(arr[8]); 
      } catch (ArrayIndexOutOfBoundsException e) {
         System.out.println("An exception occurred: " + e.getMessage());
         e. printStackTrace() ;

      }
   }
}
Salin selepas log masuk

Output

An exception occurred: Index 8 out of bounds for length 5
java.lang.ArrayIndexOutOfBoundsException: Index 8 out of bounds for length 5
        at Main.main(Main.java:6)
Salin selepas log masuk

Kaedah 2: Gunakan satu blok percubaan dan beberapa blok tangkapan

Dalam pendekatan ini, kami akan menggunakan satu percubaan dan beberapa blok tangkapan untuk mengendalikan pengecualian yang berlaku.

Algoritma

  • Isytihar blok cuba dan mulakan dua pembolehubah integer, iaitu pengangka dan penyebut. Pembolehubah penyebut dimulakan kepada 0.

  • Sekarang, jika nilai penyebutnya sama dengan 0, ArithmeticException dilemparkan.

  • Tulis berbilang blok tangkapan untuk mengendalikan pengecualian yang berbeza.

  • Gunakan kaedah terbina dalam berbeza dalam java dan cetak mesej pengecualian dan berlaku pengecualian.

示例

在此示例中,我们使用了一个 try 块,后跟多个 catch 块。如果从 try 块中抛出 ArithmeticException,则执行处理 ArithmeticException 代码的 catch 块。如果 try 块抛出 NullPointerException,则执行该特定的 catch 块。如果 catch 块不处理 try 块引发的特定异常,则执行最后一个 catch 块代码,因为它正在处理通用异常情况。从示例中,当分母值初始化为零时,我们使用“throw”关键字抛出一个 ArthemeticException,并执行处理 ArthemeticException 的 catch 块。

import java.util.*;
public class Main {
   public static void main(String[] args) {
      try {
         int numerator = 10, denominator = 0 ;
         if(denominator == 0) {
            throw new ArithmeticException();
         }
      } catch (ArithmeticException e) {
         System.out.println("ArithmeticException caught.");
         System.out.println("Message: " + e.getMessage());
         System.out.println("Stack Trace: ");
         e.printStackTrace();
         System.out.println("Cause: " + e.getCause());
      } catch (NullPointerException e) {
         System.out.println("NullPointerException caught.");
         System.out.println("Message: " + e.getMessage());
         System.out.println("Stack Trace: ");
         e.printStackTrace();
         System.out.println("Cause: " + e.getCause());
      } catch (ArrayIndexOutOfBoundsException e) {
         System.out.println("ArrayIndexOutOfBoundsException caught.");
         System.out.println("Message: " + e.getMessage());
         System.out.println("Stack Trace: ");
         e.printStackTrace();
         System.out.println("Cause: " + e.getCause());
      }catch (Exception e) {
         System.out.println("NullPointerException caught.");
         System.out.println("Message: " + e.getMessage());
         System.out.println("Stack Trace: ");
         e.printStackTrace();
         System.out.println("Cause: " + e.getCause());
      }
   }
}
Salin selepas log masuk

输出

ArithmeticException caught.
Message: null
Stack Trace: 
java.lang.ArithmeticException
        at Main.main(Main.java:7)
Cause: null
Salin selepas log masuk

因此,在本文中,我们讨论了处理Java编程语言中异常方法的不同方法。

Atas ialah kandungan terperinci Program Java yang mengendalikan kaedah pengecualian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Masalah biasa yang dihadapi dalam pembangunan teknologi C# dan penyelesaiannya Masalah biasa yang dihadapi dalam pembangunan teknologi C# dan penyelesaiannya Oct 08, 2023 pm 01:06 PM

Masalah dan penyelesaian biasa yang dihadapi dalam pembangunan teknologi C# Pengenalan: C# ialah bahasa pengaturcaraan peringkat tinggi berorientasikan objek yang digunakan secara meluas dalam pembangunan aplikasi Windows. Walau bagaimanapun, semasa proses pembangunan teknologi C#, anda mungkin menghadapi beberapa masalah biasa. Artikel ini akan memperkenalkan beberapa masalah biasa, menyediakan penyelesaian yang sepadan dan melampirkan contoh kod khusus untuk membantu pembaca memahami dan menyelesaikan masalah ini dengan lebih baik. 1. NullReferenceException (pengecualian rujukan nol) dalam proses pembangunan C#,

Masalah biasa dan penyelesaian kepada pengendalian pengecualian dalam Python Masalah biasa dan penyelesaian kepada pengendalian pengecualian dalam Python Oct 09, 2023 am 08:56 AM

Masalah biasa dan penyelesaian kepada pengendalian pengecualian dalam Python Pengenalan: Semasa menulis atur cara, sukar untuk mengelakkan pelbagai ralat dan pengecualian. Pengendalian pengecualian ialah mekanisme yang boleh menangkap dan mengendalikan pengecualian ini semasa program berjalan, dengan itu memastikan kestabilan dan kebolehpercayaan program. Dalam Python, pengendalian pengecualian ialah kemahiran yang sangat penting Artikel ini akan memperkenalkan masalah biasa dan penyelesaian kepada pengendalian pengecualian dalam Python, dan memberikan contoh kod khusus. 1. Klasifikasi pengecualian dan masalah biasa Ralat tatabahasa (SyntaxErr

Bagaimana untuk mengendalikan pengecualian penuh kolam benang Java Bagaimana untuk mengendalikan pengecualian penuh kolam benang Java Jun 30, 2023 am 10:09 AM

Dalam pembangunan Java, kolam benang ialah mekanisme berbilang benang yang sangat biasa digunakan. Ia boleh mengurus, mengawal dan menggunakan semula benang dengan berkesan, meningkatkan prestasi dan kecekapan program. Walau bagaimanapun, dalam pembangunan sebenar, kumpulan benang mungkin dimuatkan sepenuhnya, menyebabkan tugasan gagal dilaksanakan seperti biasa. Artikel ini akan membincangkan cara mengendalikan pengecualian penuh kumpulan benang untuk meningkatkan kestabilan dan kebolehpercayaan program. Pertama, kita perlu memahami punca pengecualian penuh kumpulan benang. Sebab utama kumpulan benang penuh ialah penyerahan tugasan melebihi bilangan utas maksimum yang ditetapkan oleh kumpulan benang. Apabila tugasan diserahkan kepada benang

Bagaimana untuk mengendalikan pengecualian dan pembalakan ralat dalam pembangunan PHP? Bagaimana untuk mengendalikan pengecualian dan pembalakan ralat dalam pembangunan PHP? Nov 02, 2023 am 09:27 AM

Bagaimana untuk mengendalikan pengecualian dan pembalakan ralat dalam pembangunan PHP? Sebagai bahasa pengaturcaraan back-end yang sangat popular, PHP digunakan secara meluas dalam bidang pembangunan web. Semasa proses pembangunan, kita selalunya perlu mengendalikan pengecualian dan merekodkan log ralat untuk menemui dan menyelesaikan masalah dalam masa. Artikel ini akan memperkenalkan amalan terbaik untuk mengendalikan pengecualian dan pengelogan ralat dalam pembangunan PHP. 1. Pengendalian pengecualian Dalam PHP, pengecualian ialah objek khas yang digunakan untuk mengendalikan situasi ralat. Apabila kod menemui ralat yang tidak dapat dikendalikan, kita boleh membuang pengecualian dan

Penyelesaian kepada masalah luar sempadan tatasusunan biasa dalam C++ Penyelesaian kepada masalah luar sempadan tatasusunan biasa dalam C++ Oct 08, 2023 pm 12:33 PM

Penyelesaian kepada masalah luar sempadan tatasusunan biasa dalam C++ memerlukan contoh kod khusus Dalam pengaturcaraan C++, tatasusunan di luar sempadan ialah ralat biasa. Apabila kita mengakses elemen dalam tatasusunan melangkaui julat indeks tatasusunan, ia akan menyebabkan tingkah laku yang tidak ditentukan dalam atur cara. Untuk mengelakkan ralat sedemikian, kita perlu menggunakan beberapa penyelesaian. Penyelesaian 1: Gunakan indeks tatasusunan dengan betul Pertama, kita perlu memastikan bahawa indeks tatasusunan bermula dari 0. Sebagai contoh, tatasusunan dengan 5 elemen mempunyai indeks antara 0 hingga 4. Oleh itu, apabila mengakses elemen tatasusunan, pastikan

Bagaimana untuk menyelesaikan pengecualian format data Java (DataFormatException) Bagaimana untuk menyelesaikan pengecualian format data Java (DataFormatException) Aug 27, 2023 am 10:14 AM

Bagaimana untuk menyelesaikan pengecualian format data Java (DataFormatException) Dalam pengaturcaraan Java, kita sering menghadapi pelbagai situasi yang tidak normal. Antaranya, pengecualian format data (DataFormatException) adalah masalah biasa tetapi juga sangat mencabar. Pengecualian ini akan dibuang apabila data input tidak dapat memenuhi keperluan format yang ditentukan. Menyelesaikan anomali ini memerlukan kemahiran dan pengalaman tertentu. Artikel ini akan memperincikan cara menyelesaikan pengecualian format data Java dan menyediakan beberapa contoh kod

Apakah cara yang betul untuk menutup sambungan MySQL dalam program Java? Apakah cara yang betul untuk menutup sambungan MySQL dalam program Java? Jun 30, 2023 pm 09:17 PM

Bagaimana untuk menutup sambungan MySQL dengan betul dalam program Java? MySQL ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan, dan Java ialah bahasa pengaturcaraan yang digunakan secara meluas. Apabila membangunkan program Java, selalunya perlu untuk menyambung ke pangkalan data MySQL untuk melakukan operasi penambahan, pemadaman, pengubahsuaian dan pertanyaan data. Walau bagaimanapun, penyambungan ke pangkalan data adalah proses intensif sumber Jika sambungan pangkalan data ditutup dengan tidak betul, sumber sistem akan sia-sia, malah ia boleh menyebabkan kemerosotan prestasi atau ranap program. Oleh itu, menutup sambungan MySQL dengan betul adalah penting

Bagaimana untuk mengendalikan ralat pangkalan data dalam PHP? Bagaimana untuk mengendalikan ralat pangkalan data dalam PHP? Dec 17, 2023 am 10:23 AM

Bagaimana untuk mengendalikan ralat pangkalan data dalam PHP? Apabila membangunkan aplikasi PHP, berinteraksi dengan pangkalan data adalah bahagian yang sangat biasa dan penting. Walau bagaimanapun, apabila ia berkaitan dengan operasi pangkalan data, kesilapan tidak dapat dielakkan. Untuk menangani ralat ini dan memastikan keteguhan dan kestabilan aplikasi, kami perlu mengendalikan ralat pangkalan data dengan betul. Dalam artikel ini, saya akan memperkenalkan anda kepada beberapa cara untuk mengendalikan ralat pangkalan data dalam PHP dan memberikan contoh kod khusus. Menangkap pengecualian menggunakan blok try-catch Dalam PHP kita boleh menggunakan try-ca

See all articles