Exception Handling in Java: कोई भी Program कभी भी First Attempt में Successfully Run हो जाए, ऐसा कभी कभार ही होता है। किसी Program को Develop व Type करते समय उसमें Mistakes रह जाना स्वाभाविक है और Program में जब कोई Mistake रह जाती है, तब Program में Error Generate होता है और Errors हमेंशा Unexpected Results प्रदान करता है। किसी Program में की गई वे गलतियां जो Program में Unexpected Results Generate करते हैं, Errors कहलाते हैं।
सामान्यतया किसी भी Program में Semantic व Logical दो तरह की गलतियां होती हैं। जब Program को Type करते समय हम किसी प्रकार की Typing Mistake करते हैं, तो इस प्रकार की गलती होने पर सामान्यतया कोई Program Compile नहीं होता है। इस प्रकार की गलतियों से जो Error Generate होता है, उसे Compile Time Error भी कहते हैं। जबकि कुछ गलतियां ऐसी होती हैं, जो Logical होती हैं। इस प्रकार की गलतियों से जो Error Generate होता है, उस Error को Run Time Error कहते हैं।
जब किसी Program में Error होता है, तब या तो Program सही Result प्रदान नहीं करता है, या फिर Program सामान्य रूप से Run होते-होते अचानक किसी विशेष परिस्थिति में Crash होकर Terminate हो जाता है।
Exception Handling in Java: Compile Time Errors
वे सभी Errors जिन्हें Program को Compiler करते समय Compiler द्वारा Identify कर लिया जाता है, Compile Time Errors कहलाते हैं। जब भी किसी Program File में कोई Error होती है, जावा Compiler उस Source File की .class File Create नहीं करता है। इसलिए जब भी किसी Program को Compile करते समय जावा हमें कोई Error Display करता है, हमें उन Errors को Debug करना जरूरी होता है, ताकि Program ठीक तरह से Compile व Run हो सके।
Compile Time Errors सामान्यतया या तो Typing Mistake के कारण Generate होते हैं या फिर Programming Code Statements को Misplaced करने पर Generate होते हैं। उदाहरण के लिए निम्न Code Segment देखिए:
class ErrorDemo { public static void main(String arg[]) { System.out.printnl(“Hello Java !”); } }
जब हमारे Source Program में कोई Typing Mistake हो जाती है, तब जावा Compiler हमें ये भी बताता है कि Program की किस Line में Error है। उदाहरण के लिए जब हम पिछले Program को Compile करते हैं, तब जावा Compiler हमें निम्नानुसार Error Message देता है, जिसमें पहली Line में ही वह हमें बता रहा है कि Program की 6th Line में Error है जिसमें जावा को एक ऐसा Symbol या Statement मिल रहा है, जिसे जावा नहीं पहचानता है। हमने इस Program में println() Method के स्थान पर printnl() Method प्रयोग किया है।
चूंकि जावा में इस नाम का कोई Method नहीं है, इसलिए जावा एक Error Message Display कर देता है। साथ ही जावा उस स्थान पर एक Caret Symbol ( ^ ) द्वारा हमें ये भी Indicate करता है कि Error Statement के किस स्थान पर है।
D:\Java\ErrorDemo.java:6: cannot resolve symbol symbol : method printnl (java.lang.String) location: class java.io.PrintStream System.out.printnl("Hello Java !"); ^ 1 error
जावा द्वारा प्रदान किए जा रहे इस Error Output के आधार पर हम Program में Appropriate Line पर जाकर उस Error को सही कर सकते हैं। Program में कई बार कोई एक ऐसी Error होती है, जो कई अन्य दूसरी Errors के Source का काम करती है।
उदाहरण के लिए किसी Program में किसी Variable को Declare किए बिना ही उसे Program में Use कर लिया जाए, तो Program हमें “undefined variable” प्रकार के बहुत सारे Errors Display कर देता है, जबकि हम जैसे ही उस Variable को Declare करते हैं, Program की सारी Errors ठीक हो जाती हैं।
सामान्यतया किसी भी Program को Debug करने का सबसे Best तरीका यही है कि Program की सभी Typing सम्बंधित Errors को Top से Bottom की तरफ चलते हुए सही करें। ऐसा करने पर उस प्रकार के Errors बहुत जल्दी पकड में आ जाते हैं, जो कई अन्य Errors को Generate करने का काम करते हैं।
Exception Handling in Java: Run Time Errors
कई बार एक Program अच्छी तरह से Compile होता है और उसकी .class File भी बनती है। Program सामान्य तरीके से Run भी होता है, लेकिन किसी विशेष परिस्थिति के आते ही Program Terminate हो जाता है, या गलत Result प्रदान करने लगता है। इस प्रकार की Errors वास्तव में Logical Errors होती हैं और इन्हें Debug करना सबसे मुश्किल काम होता है। चूंकि ये Errors Program के Run Time में कुछ विशेष परिस्थितियों में Generate होते हैं, इसलिए इस प्रकार के Errors को Run Time Errors कहा जाता है।
जब इस प्रकार की Errors Program में Generate होती हैं, तब जावा Interpreter एक Error Message Generate करता है और Program को Terminate कर देता है। इस प्रक्रिया को हम निम्न Program द्वारा समझ सकते हैं, जिसमें एक स्थिति के बाद एक संख्या में 0 का भाग दिया जाने लगता है, जबकि किसी भी संख्या में 0 का भाग नहीं दिया जा सकता है। इस स्थिति में जब तक एक सामान्य संख्या का भाग दिया जाता है, Program सही तरीके से काम करता है, जबकि जैसे ही संख्या में 0 का भाग दिया जाता है, Program Error Message देता है और Terminate हो जाता है।
Program class ErrorDemo2 { public static void main(String Arg[]) { int x = 15, y = 5, z = 5, result=0; result = x / (y+z); System.out.println("Value of result = " + result); result = x / (y-z+1); System.out.println("Value of result = " + result); result = x / (y-z); // Error: Division by zero System.out.println("Value of result = " + result); } } // Output Value of result = 1 Value of result = 15 Exception in thread "main" java.lang.ArithmeticException: / by zero at ErrorDemo2.main(ErrorDemo2.java:14)
ये Program Syntactically पूरी तरह से सही है, फिर भी Program Run होते समय जब उस स्थान पर आता है, जिसे हमने Program में Bold किया है, तब जावा एक Error Message देता है, और Terminate हो जाता है, क्योंकि इस Statement में x में y-z यानी 0 का भाग दिया गया है। जावा जब इस “Division By Zero” वाले Statement को Execute करने की कोशिश करता है, तब एक Error Generate होता है, जिसके Reaction में Program एक Error Message देता है और Terminate हो जाता है।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Java in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Java Programming Language in Hindi | Page: 682 | Format: PDF