Rumah  >  Artikel  >  Java  >  Pengecualian tersuai di Jawa

Pengecualian tersuai di Jawa

王林
王林ke hadapan
2023-08-24 11:41:082011semak imbas

Pengecualian tersuai di Jawa

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;
}

Pengecualian tersuai yang disemak dan pengecualian tersuai yang tidak ditanda

  • 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.

Contoh: Pengecualian Disemak Tersuai

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 >= &#39;a&#39; && ch <= &#39;z&#39;)) {
            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();
   }
}

Pengecualian masa kompilasi

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

Contoh: Pengecualian Tidak Bertanda Tersuai

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.

Pengecualian masa tayangan

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam