Anda boleh membuat pengecualian anda sendiri dalam Java, ia dipanggil pengecualian yang ditentukan pengguna atau pengecualian tersuai.
Untuk membuat pengecualian yang ditentukan pengguna, lanjutkan salah satu daripada kelas di atas. Untuk memaparkan mesej, gantikan kaedah toString() atau panggil pembina parameter kelas super dengan memintas mesej dalam format rentetan.
MyException(String msg){ super(msg); } Or, public String toString(){ return " MyException [Message of your exception]"; }
Kemudian, dalam kelas lain yang perlu membuang pengecualian ini, cipta objek kelas pengecualian tersuai yang anda buat dan buang pengecualian menggunakan kata kunci lontaran.
MyException ex = new MyException (); If(condition……….){ throw ex; }
Semua pengecualian mestilah subkelas Throwable.
Jika anda ingin menulis pengecualian bertanda yang dikuatkuasakan secara automatik oleh peraturan Handle atau Declare, anda perlu melanjutkan kelas Exception.
Jika anda ingin menulis pengecualian runtime, anda perlu melanjutkan kelas RuntimeException.
Aturcara Java berikut menunjukkan cara mencipta pengecualian yang disemak tersuai.
Demonstrasi dalam talian
import java.util.Scanner; class NotProperNameException extends Exception { NotProperNameException(String msg){ super(msg); } } public class CustomCheckedException { private String name; private int age; public static boolean containsAlphabet(String name) { for (int i = 0; i < name.length(); i++) { char ch = name.charAt(i); if (!(ch >= 'a' && ch <= 'z')) { return false; } } return true; } public CustomCheckedException(String name, int age){ if(!containsAlphabet(name)&&name!=null) { String msg = "Improper name (Should contain only characters between a to z (all small))"; NotProperNameException exName = new NotProperNameException(msg); throw exName; } this.name = name; this.age = age; } public void display(){ System.out.println("Name of the Student: "+this.name ); System.out.println("Age of the Student: "+this.age ); } public static void main(String args[]) { Scanner sc= new Scanner(System.in); System.out.println("Enter the name of the person: "); String name = sc.next(); System.out.println("Enter the age of the person: "); int age = sc.nextInt(); CustomCheckedException obj = new CustomCheckedException(name, age); obj.display(); } }
Apabila menyusun, program di atas akan menjana pengecualian berikut.
CustomCheckedException.java:24: error: unreported exception NotProperNameException; must be caught or declared to be thrown throw exName; ^ 1 error
Jika anda hanya menukar kelas pengecualian tersuai yang anda warisi daripada RuntimeException, ia akan dilemparkan pada masa larian
jalankan atur cara di atas, gantikan kelas NotProperNameException dengan kod di atas dan jalankannya, pengecualian masa jalan berikut akan dihasilkan.class NotProperNameException extends RuntimeException { NotProperNameException(String msg){ super(msg); } }
Atas ialah kandungan terperinci Pengecualian tersuai di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!