Kotlin in Hindi – Exceptions

  • Introduction to kotlin exceptions in Hindi
  • Kotlin exceptions classes in Hindi
  • Kotlin checked exceptions in Hindi

Introduction to Kotlin Exceptions

किसी भी programmer के लिए exceptions को handle करना बहुत जरुरी होता है। इससे आपकी application crash होने से बच जाती है और bad user experience भी नहीं create होता है। 

Java की तरह kotlin भी आपको exception handling mechanism provide करती है। Java और kotlin में exception handling लगभग एक समान है आपको अलग से कुछ सिखने की आश्यकता नहीं है। 

Run Time Error

Exceptions runtime errors होती है। Runtime errors वे errors होती है जो program execution के दौरान आती है और execution को रोक देती है। इसे program crash होना भी कहा जाता है।

Exceptions unexpected होती है और इन्हें रोका नहीं जा सकता है सिर्फ इन्हें handle किया जा सकता है। यानी की program को crash होने से रोका जा सकता है।

उदाहरण के लिए यदि program को execute होने के लिए computer में पर्याप्त memory उपलब्ध नहीं है तो program को run करते समय exception generate होगी और program का execution रुक जायेगा। 

Exceptions syntax errors (compile time errors) से अलग होती है। Syntax errors program को run करने से पूर्व compile time पर आती है और उन्हें program syntax में सुधार करके ठीक किया जा सकता है।

उदाहरण के लिए आप एक bracket add करना भूल जाते है तो compiler आपको element missing जैसी errors show करता है और जैसे ही आप उस syntax को सुधार लेते है तो वह error भी चली जाती है।

Ability to Handle Exceptions

Kotlin आपको exceptions को handle करने की ability provide करती है। जिसे exception handling कहा जाता है। इसके लिए kotlin आपको कई keywords provide करती है।

Kotlin में available keywords का प्रयोग करके आप exception handling mechanism को implement कर सकते है।

Application Crashes If Not

यदि आप अपनी application में exceptions को handle नहीं करते है तो आपकी application एक robust  application नहीं होती है। ऐसी applications कभी भी crash हो सकती है। 

यदि industry standard की बात की जाय तो exception handling अनिवार्य और बहुत important task है।  

Exception Classes 

Java की ही तरह kotlin में भी exceptions को classes के द्वारा represent किया गया है। उदाहरण के लिए ArithmeticException class arithmetic exceptions को represent करती है।

Kotlin में available Throwable class सभी exception classes द्वारा inherit की गयी है। Throwable class को Error और Exception दो classes inherit करती है। इनमें Exception class को सभी exceptions inherit करती है।

Throwable
 |– Error
 |– Exception
      |– IllegalCallableAccessException
      |– IllegalPropertyDelegateException
      |– NoSuchPropertyException
      |– RunTimeException
           |– ArithmeticException
           |– ClassCastException
           |– ConcurrentModificationException
           |– FreezingException
           |– IllegalArgumentException
           |– IllegalStateException
           |– IncorrectDereferenceException
           |– IndexOutOfBoundsException
           |– InvalidMutabilityException
           |– NoSuchElementException
           |– NoWhenBranchMatchedException
           |– NullPointerException
           |– UninitializedPropertyAccessException
           |– UnsupportedAccessException

Checked & Unchecked Exception

Mostly exceptions checked और unchecked दो प्रकार की होती है। इनमें checked exception ऐसी exception होती है जिसे compile time पर check किया जाता है।

Checked exceptions के बारे में पहले से ही पता होता है। इन्हें throw keyword के प्रयोग से generate किया जाता है। Unchecked exceptions compile time पर known नहीं होती है। ये unexpected exceptions होती है।

एक बात आपको हमेशा ध्यान रखनी चाहिए की kotlin में checked exceptions allow नहीं है। Java में इससे होने वाली समस्याँओ को ध्यान में रखते हुए kotlin में checked exception को allow नहीं किया गया है।

Handling Exceptions in Kotlin 

Kotlin में exceptions try, catch और finally keywords द्वारा handle की जाती है। ये सभी keywords अलग अलग code blocks को represent करते है। 

try
{
  // Code that may generate an exception.
}
catch(e: ExceptionName)
{
  // Handle exception here
}
finally
{
  // Optional code to perform.
}

Try block में वह code लिखा जाता है जिससे संभवतः exception generate हो सकती है। Try block के बाद catch block लिखा जाता है। Catch block में ही generate हुई exception को handle किया जाता है।

Catch block में एक argument भी pass किया जाता है। जिसे exception argument कहा जाता है। यह उसी type का होता है जो exception आप catch block में handle करना चाहते है।

उदाहरण के लिए आप try block में arithmetic exception handle करना चाहते है तो इसके लिए try block इस प्रकार define करेंगे।

catch(e: ArithmeticException)

एक try block के बाद आप multiple catch blocks define कर सकते है। आप अलग अलग type की exceptions को इन catch blocks में handle कर सकते है।

Catch block में pass किये जाने वाले argument से आप उस exception से सम्बंधित जानकारी print कर सकते है। इसके लिए Message और StackTrace जैसी properties आप use कर सकते है जो सभी exception types के साथ available है।

catch(e: ArithmeticException)
{
   print(e.Message)
}

Finally block में वह code लिखा जाता है जो चाहे exception generate हो या ना हो हर situation में execute होता है। इस block में आप connection terminate करना और resources free करना जैसे कार्य कर सकते है। Try block के बाद कम से कम एक catch या finally block होना अनिवार्य होता है। 

Try is an Expression 

Kotlin में आप try और catch block को expression के रूप में भी use कर सकते है। इससे आप variable assignment को भी exception के लिए guard कर सकते है। यह feature exceptions को handle करने की आपकी ability को extend करता है। 

val a: Int? = try{parseInt(input)}catch(e:NumberFormatException){null} 

ऊपर दिए उदाहरण में यदि input को int में parse नहीं किया जा सकेगा तो a variable को null value assign कर दी जायेगी।

Previous: Kotlin This Expression and Type Aliases
Next: Kotlin Type Checking and Casting