Pada suatu ketika dahulu di tanah Jawa, ada seorang pengaturcara bernama Alex. Alex suka membuat aplikasi untuk penduduk kampung. Pada suatu hari, dia membuat apl untuk membantu orang ramai menjejaki buah mereka.
Tetapi sesuatu telah berlaku! Seorang penduduk kampung cuba melihat buah yang tidak wujud. Apl itu ranap, dan penduduk kampung itu keliru. Masalah ini dipanggil pengecualian. Pengecualian ialah ralat yang berlaku apabila program dijalankan. Ia menghentikan aliran biasa apl.
Alex ingin menyelesaikan masalah ini. Dia belajar bahawa pengendalian pengecualian adalah sangat penting. Ia membantu menjadikan program lebih selamat dan lebih dipercayai. Dengan pengendalian pengecualian yang baik, apl boleh memberitahu pengguna tentang masalah dan bukannya ranap.
Alex mendapati bahawa Java mempunyai struktur untuk pengecualian. Di bahagian atas ialah kelas Boleh Lempar. Di bawahnya, terdapat dua cabang utama: Ralat dan Pengecualian. Ralat ialah masalah serius, manakala pengecualian lebih mudah dikendalikan.
Alex mengetahui terdapat dua jenis pengecualian utama:
Alex menemui beberapa perkataan ajaib untuk membantunya:
Alex menulis kod ini:
public class FruitTracker { public static void main(String[] args) { try { String[] fruits = {"Apples", "Oranges", "Bananas"}; System.out.println(fruits[3]); // This will cause a mistake! } catch (ArrayIndexOutOfBoundsException e) { System.out.println("Oops! That fruit does not exist."); } finally { System.out.println("Check your fruits carefully!"); } } }
Sekarang, jika seseorang cuba melihat buah yang tiada, apl itu akan memberitahu mereka dengan baik dan bukannya ranap.
blok cuba-tangkap adalah penting. Blok cuba mengandungi kod yang mungkin gagal dan blok tangkapan mengendalikan ralat.
Kadangkala, mungkin terdapat lebih daripada satu jenis ralat. Alex mengetahui bahawa dia boleh mempunyai beberapa blok tangkapan untuk mengendalikan pengecualian yang berbeza:
public class FruitTracker { public static void main(String[] args) { try { String[] fruits = {"Apples", "Oranges", "Bananas"}; System.out.println(fruits[3]); // This will cause a mistake! } catch (ArrayIndexOutOfBoundsException e) { System.out.println("Oops! That fruit does not exist."); } finally { System.out.println("Check your fruits carefully!"); } } }
Alex juga mendapat tahu tentang cubaan bersarang blok. Ini bermakna anda boleh meletakkan blok percubaan di dalam blok percubaan lain. Ini membantu mengurus ralat kompleks dengan lebih baik.
sekat akhirnya sangat berguna. Ia berjalan tidak kira apa. Ia adalah tempat yang baik untuk membersihkan sumber, seperti menutup fail.
Kata kunci lempar membolehkan Alex membuat pengecualian apabila berlaku masalah. Contohnya:
try { // Code that might throw different exceptions } catch (IOException e) { // Handle IOException } catch (SQLException e) { // Handle SQLException }
Kadangkala, pengecualian boleh menaikkan timbunan panggilan. Ini dipanggil penyebaran pengecualian. Jika kaedah tidak mengendalikan pengecualian, ia boleh menghantarnya kepada kaedah yang memanggilnya.
Kata kunci throws digunakan dalam kaedah untuk mengisytiharkan bahawa ia boleh membuang pengecualian. Dengan cara ini, pemanggil tahu mereka harus mengendalikan pengecualian.
Alex mengetahui bahawa lempar digunakan untuk mencipta pengecualian, manakala lempar digunakan dalam tandatangan kaedah untuk menunjukkan bahawa kaedah boleh membuang pengecualian.
Alex juga menemui perbezaan antara akhir, akhirnya dan akhir:
Alex mengetahui bahawa apabila subkelas mengatasi kaedah, ia hanya boleh membuang pengecualian yang sama atau lebih spesifik daripada kaedah induk.
Akhirnya, Alex menyedari dia boleh mencipta pengecualian tersuai. Ini bermakna dia boleh membuat pengecualian yang sesuai dengan keperluan aplnya. Contohnya:
throw new Exception("This is a custom error!");
Alex mempelajari banyak perkara penting tentang pengendalian pengecualian. Dia menjadikan aplnya lebih selamat dan mudah digunakan. Penduduk kampung gembira kerana aplikasinya berfungsi dengan baik. Alex menjadi wira, dan semua orang di Jawa hidup bahagia selamanya.
Atas ialah kandungan terperinci Pengendalian Pengecualian dalam Java: Menggunakan Pendekatan Bercerita. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!