User defined Custom Exception in Java in Hindi

Last Updated on July 22, 2023 by RAJENDRAPRASAD

User defined Custom Exception in Java in Hindi – Hello दोस्तों rajhindime.in में आपका स्वागत है |

दोस्तों, पिछले post throw and throws keyword in Java in Hindi  में आपने throw और throws keyword के बारे में जाना |

आज के इस post में आप Custom Exception के बारे में विस्तार से जानेंगे |

User defined Custom Exception in Java:

अब तक हमनें Java में मौजूद Exception जो कि java के in-built Exceptions हैं, उनका ही use किया |

Java में हम अपना खुद का exception भी create कर सकते हैं, इसे ही user-define अथवा custom exception कहते हैं | Custom Exception का use करके हम किसी भी in-built exception को user के जरुरत के हिसाब से customize कर सकते हैं अथवा एक नया Exception भी create कर सकते हैं |

Custom Exception की आवश्यकता:

वैसे तो, java में वह सभी basic exception मौजूद हैं, जो किसी भी programming में आ सकते हैं |

फिर भी हम/programmer हमेशा यही चाहते हैं कि, हमारे द्वारा बनाया गया application हमारे business logic और code को ध्यान में रखकर ही exception throw करे, जिससे एक client/user आसानी से समझ जाए कि क्या गलत हुआ है |

विशेष रूप से इनका use, REST API में Exception handling के लिए किया जाता है, क्योकि इसमें अलग-अलग constrains (रुकावट) के हिसाब से server द्वारा client को अलग-अलग response code भेजना पड़ता है |

REST API यह एक बहुत बड़ा topic है, जिसे हम बाद में कभी विस्तार से जानेंगे |

अभी के लिए इतना जान लो कि, API एक ऐसा method है, जिसे हम outsource कर सकते हैं, अर्थात इसका अपना एक स्वतंत्र अस्तित्व होता है, जिसे कोई भी use कर सकता है, परन्तु इसे use करने के लिए, इसके owner से agreement/contract करना पड़ता है   |

Example के लिए, Online payment service के लिए Amazon, अलग-अलग Banks की API use करता है | अधिकतर websites पर login करने के लिए google account का use होता है, क्योकि वह website, google का API use कर रहा होता है |

NOTE: अगर custom exception, in-built Exception की तुलना में, user को बेहतर information नहीं देता, तब custom Exception नहीं बनाना चाहिए |

How to create Custom Checked Exception:

Custom Exception को और अधिक जानने के लिए एक example लेते हैं |

अपने कभी न कभी online form जरूर भरा होगा, जहाँ आपको image file upload करना होता है, और गलती से अगर आप image के अलावा कोई दूसरा file upload करते हो तब तुरंत आपको एक error message आता है कि “file format is not acceptable “ अर्थात “हम आपके द्वारा upload किए हुए file format को अस्वीकार करते हैं ” |

ऐसा कैसे होता है, इसे समझने के लिए एक Custom exception create करते हैं |

NOTE: Custom checked exception create करने के लिए Exception Class को extends करना पड़ता है |

Program 1.1 :

class FileFormatNotAcceptableException extends Exception {
	
    public FileFormatNotAcceptableException(String message)
    {
        super(message);  // Call constructor of parent Exception
    }
}

Explanation :

सबसे पहले हमने एक Class define किया है जो java.lang.Exception को extends करता है |

उसके बाद एक parameterized constructor बनाया जो String message को लेता है और फिर super keyword का use करके parent class constructor को call करता है |

parameterized constructor create करना जरुरी नहीं है, परन्तु हमें हमेशा अपने Exception का कुछ न कुछ details जरूर देना चाहिए |

How to use custom Checked Exception:

Program 1.2 :

import java.util.Arrays;
import java.util.List;
public class RegistrationServiceClient {

	static List<String> acceptableFormat = Arrays.asList("jpeg", "png", "jpg");

	public static void validateFileFormat(String fileFormat) throws FileFormatNotAcceptableException {

		if (!acceptableFormat.contains(fileFormat)) {
			throw new FileFormatNotAcceptableException("Invalid File Format");
		}
	}

	public static void main(String[] args) {
		try {
			validateFileFormat("pdf");
			System.out.println("image accepted");
		} catch (FileFormatNotAcceptableException e) {

			System.out.println("Image file format is not acceptable, please upload jpeg, png or jpg only");
			e.printStackTrace();
		}
	}
}

OutPut:

Image file format is not acceptable, please upload jpeg, png or jpg only
com.exceptionHandling.FileFormatNotAcceptableException: Invalid File Format
	at com.exceptionHandling.RegistrationServiceClient.validateFileFormat(RegistrationServiceClient.java:32)
	at com.exceptionHandling.RegistrationServiceClient.main(RegistrationServiceClient.java:38)

Explanation:

चूँकि हमारे द्वारा बनाया गया method validateFileFormat(), FileFormatNotAcceptableException exception throw कर सकता है, और यह checked exception है, इसलिए इसे throws keyword द्वारा declare किया गया है |

अगर हमारे द्वारा upload की हुई file, list acceptableFormat में available हुई तो वह accept होगा वरना FileFormatNotAcceptableException exception throw होगा |

main() method में हमने validateFileFormat() को call किया है और try catch का use करके Exception handle किया है |

ध्यान दो, हमने validateFileFormat(“pdf”); use किया है इसलिए Exception occur हुआ और “Image file format is not acceptable, please upload jpeg, png or jpg only” मिला |

अब, इसे validateFileFormat(“jpeg”); से replace करो और फिर से execute करो, अब कोई exception throw नहीं होगा और आपको output “image accepted” मिलेगा |

Create and use custom Unchecked Exception:

Custom Unchecked exception create करने के लिए RuntimeException को extends करना पड़ता है |

आप जानते ही हो कि जब program में checked exception है, और हम उसे handle/declare नहीं करते तब तक program compile नहीं होगा |

जब program में सिर्फ unchecked  exception है तब program तो आसानी से compile हो जाएगा परन्तु runtime पर exception throw कर देगा और program abnormally terminate हो जाएगा |

Program 2:

import java.util.Arrays;
import java.util.List;
class FileFormatNotAcceptableException extends RuntimeException {
	
    public FileFormatNotAcceptableException(String message)
    {
        super(message);  // Call constructor of parent Exception
    }
}

public class RegistrationServiceClient {

	static List<String> acceptableFormat = Arrays.asList("jpeg", "png", "jpg");

	public static void validateFileFormat(String fileFormat){ 

		if (!acceptableFormat.contains(fileFormat)) {
			throw new FileFormatNotAcceptableException("Invalid File Format");
		}
	}

	public static void main(String[] args) {
		try {
			validateFileFormat("pdf");
			System.out.println("image accepted");
		} catch (FileFormatNotAcceptableException e) {

			System.out.println("Image file format is not acceptable, please upload jpeg, png or jpg only");
			e.printStackTrace();
		}
	}
}

OutPut:

Image file format is not acceptable, please upload jpeg, png or jpg only
com.exceptionHandling.FileFormatNotAcceptableException: Invalid File Format
	at com.exceptionHandling.RegistrationServiceClient.validateFileFormat(RegistrationServiceClient.java:20)
	at com.exceptionHandling.RegistrationServiceClient.main(RegistrationServiceClient.java:26)

Explanation :

ऊपर program 2 में, Output हमें same ही मिला है (जैसा checked exception में मिला था)|

चूँकि, यहाँ हमने Unchecked exception create किया है, इसलिए throws keyword का use करके exception declare करना जरुरी नहीं है |

हालांकि, हमने try catch का use करके Exception handle किया है, परन्तु यदि हम ऐसा नहीं करते तब भी हमारा code compile तथा run हो जाता | फिर भी एक अच्छे programmer को exception handle जरूर करना चाहिए |

Custom Exception के लिए Best Practices :

1. हमेशा सभी custom exception के नाम के end में “Exception” अवश्य लिखे

2. compile/checked Exception की बजाय runtime/Uncheck exception को अधिक प्राथमिकता दे | अर्थात जहाँ तक हो सके runtime/Uncheck exception ही create करे |

3. यदि java में available in-built exception से आपका कार्य हो सकता है तो, उस case में custom exception न create करे |

4. यही कोई API, custom Exception को use करता हो तो, उसे document जरूर करना चाहिए, जिससे जो भी उस API को use करे, वह उस Exception को अच्छे से समझ सके |

Conclusion – आज आपने क्या सीखा

इस post में आपने जाना कि Custom Exception क्या है, उसकी क्यों जरुरत है और उसे create तथा use कैसे करते हैं |

आशा है कि, आपको मेरा यह Blog User defined Custom Exception in Java in Hindi जरूर पसंद आया होगा |

अगर आप इस post से related कोई सवाल पूँछना चाहते हैं अथवा कोई सुझाव देना चाहते हैं तो comment करके जरूर बताएं, मैं उसका reply जरूर दूँगा |

इस post को अपना कीमती समय देने के लिए बहुत बहुत धन्यवाद् | फिर मिलेंगें |

Leave a Comment