Rumah > Java > javaTutorial > Pengecualian tersuai di Jawa

Pengecualian tersuai di Jawa

王林
Lepaskan: 2023-08-24 11:41:08
ke hadapan
2099 orang telah melayarinya

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]";
}
Salin selepas log masuk

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;
}
Salin selepas log masuk

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();
   }
}
Salin selepas log masuk

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
Salin selepas log masuk

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);
   }
}
Salin selepas log masuk

Atas ialah kandungan terperinci Pengecualian tersuai di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan