Java - Throws dan Throw: Memahami Pengendalian Pengecualian
Halo para programmer Java masa depan! Hari ini, kita akan melakukan perjalanan yang menarik ke dalam dunia pengendalian pengecualian di Java. Khususnya, kita akan fokus pada kata kunci throws
dan throw
. Jangan khawatir jika Anda masih baru dalam pemrograman; saya akan memandu Anda langkah demi langkah, sama seperti yang saya lakukan untuk banyak siswa selama tahun-tahun pengajaran saya. Mari kita melompatlah!
Apa itu Pengecualian?
Sebelum kita melompat ke throws
dan throw
, mari kita singkat ulang apa itu pengecualian. Bayangkan Anda sedang memasak makanan, mengikuti resep. Semuanya berjalan mulus sampai - ups! - Anda menyadari bahwa Anda kehabisan bahan penyusun yang penting. Itu mirip dengan pengecualian dalam pemrograman: peristiwa yang tidak diharapkan yang mengganggu aliran normal dari program Anda.
Mengerti throws
dan throw
Kata Kunci throws
Kata kunci throws
digunakan dalam deklarasi metode untuk menunjukkan bahwa metode ini mungkin akan melemparkan satu atau lebih jenis pengecualian. Itu seperti menempatkan tanda "Perhatian: Lantai Basah" - Anda memperingatkan siapa pun yang menggunakan metode ini bahwa mereka perlu siap untuk pengecualian potensial.
Kata Kunci throw
Di sisi lain, throw
digunakan untuk membuat dan melemparkan pengecualian secara aktual. Itu seperti benar-benar kericikan air di atas lantai - Anda membuat situasi pengecualian.
Sintaks
Mari kita lihat sintaks untuk keduanya:
// Menggunakan throws dalam deklarasi metode
public void myMethod() throws ExceptionType {
// Badan metode
}
// Menggunakan throw untuk membuat pengecualian
throw new ExceptionType("Pesan kesalahan");
Contoh Java Throws dan Throw
Mari kita mulai dengan contoh sederhana untuk mengilustrasikan throws
dan throw
:
public class DivisionExample {
public static double divide(int a, int b) throws ArithmeticException {
if (b == 0) {
throw new ArithmeticException("Tidak dapat membagi dengan nol!");
}
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 pengecualian
} catch (ArithmeticException e) {
System.out.println("Terjadi kesalahan: " + e.getMessage());
}
}
}
Mari kita pecahkan ini:
- Kita mendeklarasikan metode
divide
yangthrows ArithmeticException
. - Di dalam metode, kita
throw
pengecualianArithmeticException
baru jikab
adalah nol. - Di dalam metode
main
, kita menggunakan bloktry-catch
untuk menangani pengecualian potensial.
Ketika Anda menjalankan ini, Anda akan melihat:
5.0
Terjadi kesalahan: Tidak dapat membagi dengan nol!
Contoh Lain
Contoh 1: Pengecualian Kustom
Mari kita buat pengecualian kustom dan gunakan itu:
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 harus berusia 18 tahun atau lebih untuk memilih.");
} else {
System.out.println("Anda berhak untuk memilih!");
}
}
public static void main(String[] args) {
try {
checkEligibility(20); // Ini baik
checkEligibility(15); // Ini akan melemparkan pengecualian
} catch (AgeException e) {
System.out.println("Kesalahan: " + e.getMessage());
}
}
}
Contoh ini menunjukkan cara membuat dan menggunakan pengecualian kustom Anda sendiri.
Contoh 2: Pengecualian Multiple
Mari kita lihat cara menangani pengecualian multiple:
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("Kesalahan: File tidak ditemukan.");
} catch (IOException e) {
System.out.println("Kesalahan: Masalah saat membaca file.");
}
}
}
Contoh ini menunjukkan cara menangani jenis pengecualian multiple yang dapat dilemparkan oleh metode.
Praktik Terbaik
- Spesifik: Hanya lemparkan pengecualian yang sesuai dengan kondisi kesalahan.
- Dokumentasi Baik: Selalu dokumentasikan pengecualian yang dapat dilemparkan metode Anda di Javadoc metode.
-
Handle atau Deklarasikan: baik menangani pengecualian dengan blok
try-catch
atau deklarasikan denganthrows
. - Jangan Kegunakan Berlebihan: Jangan gunakan pengecualian untuk kontrol aliran normal. Mereka adalah untuk keadaan yang ekseptional.
Kesimpulan
Mengerti throws
dan throw
adalah penting untuk pengendalian pengecualian yang baik di Java. Hal ini memungkinkan Anda menulis kode yang lebih robust dan tahan terhadap kesalahan. Ingat, pengecualian adalah teman Anda - mereka membantu Anda mengantisipasi dan menangani masalah dengan grace.
Sebagai Anda melanjutkan perjalanan Java Anda, Anda akan menemukan banyak situasi di mana pengendalian pengecualian menjadi sangat berharga. Tetap latihan, dan segera itu akan menjadi kebiasaan.
Happy coding, para master Java masa depan!
Credits: Image by storyset