Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java में यूजर-डिफाइंड अपवाद क्लास कब बनानी चाहिए?


हमें Java में अपने स्वयं के अपवाद बनाने चाहिए। अपने स्वयं के अपवाद क्लास लिखते समय निम्नलिखित बिंदुओं को ध्यान में रखें:

  • सभी अपवाद Throwable के चाइल्ड होने चाहिए।
  • यदि हम एक चेक्ड अपवाद लिखना चाहते हैं जो हैंडल या डिक्लेयर नियम द्वारा स्वचालित रूप से लागू होता है, तो हमें Exception क्लास को एक्सटेंड करने की आवश्यकता है।
  • यदि हम रनटाइम अपवाद लिखना चाहते हैं, तो हमें RuntimeException क्लास को एक्सटेंड करने की आवश्यकता है।

हम अपनी स्वयं की अपवाद क्लास को नीचे के रूप में परिभाषित कर सकते हैं:

class MyException extends Exception { }

हमें बस अपनी स्वयं की अपवाद क्लास बनाने के लिए Exception क्लास को एक्सटेंड करने की आवश्यकता है। इनको चेक्ड अपवाद माना जाता है। निम्नलिखित InsufficientFundsException क्लास एक यूजर-डिफाइंड अपवाद है जो Exception क्लास को एक्सटेंड करता है, जिससे यह एक चेक्ड अपवाद बन जाता है।

उदाहरण

// फाइल नाम InsufficientFundsException.java
import java.io.*;
class InsufficientFundsException extends Exception {
    private double amount;
    public InsufficientFundsException(double amount) {
        this.amount = amount;
    }
    public double getAmount() {
        return amount;
    }
}

// फाइल नाम 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;
    }
}

// फाइल नाम 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 में Abstract Class

    अपनी घोषणा में abstract कीवर्ड वाली क्लास को abstract क्लास के रूप में जाना जाता है।Abstract क्लासेज में abstract मेथड्स हो भी सकते हैं और नहीं भी, यानी बिना बॉडी वाले मेथड्स (public void get();)लेकिन, यदि एक क्लास में कम से कम एक abstract मेथड है, तो क्लास को abstract घोषित किया जाना चाहिए।यदि एक क

  1. - Java में Final Class

    क्लास को final घोषित करने का मुख्य उद्देश्य क्लास को सबक्लास होने से रोकना है। यदि एक क्लास को final के रूप में चिह्नित किया जाता है तो कोई भी क्लास final क्लास से किसी भी सुविधा को इनहेरिट नहीं कर सकती।public final class Test { // body of class }

  1. - उदाहरण के साथ पायथन में उपयोगकर्ता-परिभाषित अपवाद

    पायथन जब भी कोड असामान्य रूप से व्यवहार करता है तो एरर और अपवाद फेंकता है और इसका निष्पादन अचानक रुक जाता है। पायथन हमें ट्राई-एक्सेप्ट स्टेटमेंट का उपयोग करके अपवाद संचालन विधि की मदद से ऐसे परिदृश्यों को संभालने के लिए उपकरण प्रदान करता है। कुछ मानक अपवाद जो पाए जाते हैं उनमें ArithmeticError, Ass