Java - Throws dan Throw: Memahami Penanganan Exception
Helo semua, pemrogram Java masa depan! Hari ini, kita akan memulakan perjalanan yang menarik ke atas dunia penanganan exception di dalam Java. Khususnya, kita akan fokus kepada kata kunci throws
dan throw
. Jangan khawatir jika anda baru mengenal programming; saya akan pandu anda melalui setiap langkah, sama seperti yang saya lakukan untuk pelbagai pelajar selama tahun tahun pengajaran saya. Mari kita melangkah!
Apa itu Exceptions?
Sebelum kita melompat ke throws
dan throw
, mari kita ikut semula apa itu exceptions. Bayangkan anda sedang untuk memasak makanan, mengikuti resepi. Semua berjalan lancar hingga - oops! - anda menyadari anda kehabisan bahan penting. Itu adalah hampir sama dengan exception dalam programming: sebuah peristiwa yang tidak dijangka yang mengganggu aliran normal program anda.
Mengerti throws
dan throw
Kata Kunci throws
Kata kunci throws
digunakan dalam pengisytiharan method untuk menunjukkan bahwa method ini mungkin akan melemparkan satu atau lebih jenis exceptions. Ia seperti meletakkan tanda "Awas: Lantai Basah" - anda memberi amaran kepada semua yang menggunakan method ini bahwa mereka perlu untuk bersedia atas potensi exceptions.
Kata Kunci throw
Di pihak lain, throw
digunakan untuk membuat dan melemparkan exception secara sebenar. Ia seperti benar-benar kencing di atas lantai - anda mencipta situasi exception.
Sintaks
Mari kita lihat sintaks untuk kedua-duanya:
// Menggunakan throws dalam pengisytiharan method
public void myMethod() throws ExceptionType {
// Badan method
}
// Menggunakan throw untuk membuat exception
throw new ExceptionType("Pesan kesilapan");
Contoh Java Throws dan Throw
Mari kita mula dengan contoh yang ringkas untuk menggambar kedua-dua throws
dan throw
:
public class DivisionExample {
public static double divide(int a, int b) throws ArithmeticException {
if (b == 0) {
throw new ArithmeticException("Tidak boleh bagi dengan kosong!");
}
return (double) a / b;
}
public static void main(String[] args) {
try {
System.out.println(divide(10, 2)); // Ini berjalan baik
System.out.println(divide(10, 0)); // Ini akan melemparkan exception
} catch (ArithmeticException e) {
System.out.println("Kesilapan terjadi: " + e.getMessage());
}
}
}
Mari kita kongsi ini:
- Kita mengisytiharkan method
divide
yangthrows ArithmeticException
. - Di dalam method, kita
throw
ArithmeticException baru jikab
adalah nol. - Di dalam method
main
, kita menggunakan bloktry-catch
untuk mengendalikan potensi exceptions.
Apabila anda menjalankan ini, anda akan lihat:
5.0
Kesilapan terjadi: Tidak boleh bagi dengan kosong!
Lagi Contoh
Contoh 1: Exception Tersuai
Mari kita cipta exception tersuai dan gunakannya:
class AgeException extends Exception {
public AgeException(String message) {
super(message);
}
}
public class VotingSystem {
public static void checkEligibility(int age) throws AgeException {
if (age < 18) {
throw new AgeException("Anda mesti berumur 18 atau lebih untuk untuk mengundi.");
} else {
System.out.println("Anda layak untuk mengundi!");
}
}
public static void main(String[] args) {
try {
checkEligibility(20); // Ini baik
checkEligibility(15); // Ini akan melemparkan exception
} catch (AgeException e) {
System.out.println("Kesilapan: " + e.getMessage());
}
}
}
Contoh ini menunjukkan bagaimana anda boleh membuat dan menggunakan exception tersuai anda sendiri.
Contoh 2: Exception Berbilang
Mari kita lihat bagaimana untuk mengendalikan exception berbilang:
import java.io.*;
public class FileReadExample {
public static void readFile(String filename) throws FileNotFoundException, IOException {
FileReader file = new FileReader(filename);
BufferedReader reader = new BufferedReader(file);
String line = reader.readLine();
while (line != null) {
System.out.println(line);
line = reader.readLine();
}
reader.close();
}
public static void main(String[] args) {
try {
readFile("example.txt");
} catch (FileNotFoundException e) {
System.out.println("Kesilapan: Fail tidak ditemui.");
} catch (IOException e) {
System.out.println("Kesilahan: Masalah membaca fail.");
}
}
}
Contoh ini menunjukkan bagaimana untuk mengendalikan jenis berbilang exceptions yang method mungkin melemparkan.
Praktik Terbaik
- Spesifik: Hanya melemparkan exceptions yang sesuai untuk kondisi kesilapan.
- Dokumentasi Baik: Sentiasa dokumentasikan exceptions yang method anda boleh melemparkan di atas Javadoc method.
- kendalikan atau Deklarasikan: Entah kendalikan exception dengan blok try-catch atau deklarasikan dengan throws.
- Jangan Overuse: Jangan gunakan exceptions untuk aliran kendali normal. Ia untuk keadaan kecemasan.
Kesimpulan
Mengerti throws
dan throw
adalah penting untuk penanganan exception yang baik di dalam Java. Ia membenarkan anda untuk menulis kod yang lebih robust dan tahan terhadap kesilapan. Ingat, exceptions adalah rakan anda - mereka membantu anda untuk mengantisipasi dan mengendalikan masalah dengan graces.
Apabila anda teruskan perjalanan Java anda, anda akan bertemu banyak situasi di mana penanganan exception menjadi berharga. Teruskan untuk berlatih, dan tidak lama lagi ia akan menjadi wajah kedua nature.
Happy coding, pemimpin Java masa depan!
Credits: Image by storyset