Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaでユーザー定義の例外クラスを作成する必要があるのはいつですか。


Javaで独自の例外を作成する必要があります。独自の例外クラスを作成するときは、次の点に注意してください

  • すべての例外はThrowableの子である必要があります。
  • HandleまたはDeclareルールによって自動的に適用されるチェック済み例外を作成する場合は、Exceptionクラスを拡張する必要があります。
  • ランタイム例外を記述したい場合は、RuntimeExceptionクラスを拡張する必要があります。

独自のExceptionクラスを次のように定義できます:

class MyException extends Exception {
}

独自のExceptionクラスを作成するには、Exceptionクラスを拡張する必要があります。これらはチェックされた例外と見なされます。次のInsufficientFundsExceptionクラスは、Exceptionクラスを拡張するユーザー定義の例外であり、チェックされた例外になります。

// File Name InsufficientFundsException.java
import java.io.*;
class InsufficientFundsException extends Exception {
   private double amount;
   public InsufficientFundsException(double amount) {
      this.amount = amount;
   }
   public double getAmount() {
      return amount;
   }
}

// File Name CheckingAccount.java
class CheckingAccount {
   private double balance;
   private int number;
   public CheckingAccount(int number) {
      this.number = number;
   }
   public void deposit(double amount) {
      balance += amount;
   }
   public void withdraw(double amount) throws InsufficientFundsException {
      if(amount <= balance) {
         balance -= amount;
      }
      else {
         double needs = amount - balance;
         throw new InsufficientFundsException(needs);
      }
   }
   public double getBalance() {
      return balance;
   }
   public int getNumber() {
      return number;
   }
}
// File Name BankDemo.java
public class BankDemo {
   public static void main(String [] args) {
      CheckingAccount c = new CheckingAccount(101);
      System.out.println("Depositing $500...");
      c.deposit(500.00);
      try {
         System.out.println("\nWithdrawing $100...");
         c.withdraw(100.00);
         System.out.println("\nWithdrawing $600...");
         c.withdraw(600.00);
      } catch(InsufficientFundsException e) {
         System.out.println("Sorry, but you are short $" + e.getAmount());
         e.printStackTrace();
      }
   }
}

出力

Depositing $500...
Withdrawing $100...
Withdrawing $600...
Sorry, but you are short $200.0
InsufficientFundsException
at CheckingAccount.withdraw(BankDemo.java:32)
at BankDemo.main(BankDemo.java:53)
>
  1. Javaの最終クラス

    finalとして宣言されているクラスを使用する主な目的は、クラスがサブクラス化されないようにすることです。クラスがfinalとしてマークされている場合、どのクラスもfinalクラスから機能を継承できません。 public final class Test {    // body of class }

  2. 例を使用したPythonでのユーザー定義の例外

    Pythonは、コードが異常に動作し、その実行が突然停止するたびに、エラーと例外をスローします。 Pythonは、try-exceptステートメントを使用した例外処理メソッドを使用して、このようなシナリオを処理するためのツールを提供します。検出されるいくつかの標準的な例外には、ArithmeticError、AssertionError、AttributeError、ImportErrorなどがあります。 ユーザー定義の例外クラスの作成 ここでは、新しい例外クラス、つまりUser_Errorを作成しました。例外は、直接または間接的に、組み込みのExceptionクラスから派生させる必要があり