Skip to content

try...except ಬ್ಲಾಕ್

ಪೈಥಾನ್‌ನಲ್ಲಿ, ಪ್ರೋಗ್ರಾಮ್ ಚಾಲನೆಯಲ್ಲಿರುವಾಗ ದೋಷಗಳು (errors) ಸಂಭವಿಸಬಹುದು. ಈ ದೋಷಗಳನ್ನು ಎಕ್ಸೆಪ್ಷನ್‌ಗಳು (Exceptions) ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಎಕ್ಸೆಪ್ಷನ್‌ಗಳು ಸಂಭವಿಸಿದಾಗ, ಪ್ರೋಗ್ರಾಮ್ ಕ್ರ್ಯಾಶ್ ಆಗುತ್ತದೆ.

try...except ಬ್ಲಾಕ್ ಅನ್ನು ಬಳಸಿ, ನಾವು ಸಂಭಾವ್ಯ ದೋಷಪೂರಿತ ಕೋಡ್ ಅನ್ನು "ಪ್ರಯತ್ನಿಸಬಹುದು" (try) ಮತ್ತು ದೋಷ ಸಂಭವಿಸಿದರೆ ಅದನ್ನು "ಹಿಡಿಯಬಹುದು" (except), ಇದರಿಂದ ಪ್ರೋಗ್ರಾಮ್ ಕ್ರ್ಯಾಶ್ ಆಗುವುದನ್ನು ತಪ್ಪಿಸಬಹುದು.


try...except ಸಿಂಟ್ಯಾಕ್ಸ್

try:
    # ದೋಷ ಸಂಭವಿಸಬಹುದಾದ ಕೋಡ್
    # ...
except ExceptionType:
    # ದೋಷ ಸಂಭವಿಸಿದಾಗ ಚಲಾಯಿಸಬೇಕಾದ ಕೋಡ್
    # ...
  • try ಬ್ಲಾಕ್: ಇಲ್ಲಿ ನೀವು ದೋಷವನ್ನು ಉಂಟುಮಾಡಬಹುದಾದ ಕೋಡ್ ಅನ್ನು ಇರಿಸುತ್ತೀರಿ.
  • except ಬ್ಲಾಕ್: try ಬ್ಲಾಕ್‌ನಲ್ಲಿ ನಿರ್ದಿಷ್ಟ ExceptionType ನ ದೋಷ ಸಂಭವಿಸಿದರೆ ಮಾತ್ರ ಈ ಬ್ಲಾಕ್ ಚಲಿಸುತ್ತದೆ.

ಉದಾಹರಣೆ: ZeroDivisionError

ಶೂನ್ಯದಿಂದ ಭಾಗಾಕಾರ ಮಾಡುವುದು ಗಣಿತದಲ್ಲಿ ಸಾಧ್ಯವಿಲ್ಲ, ಮತ್ತು ಪೈಥಾನ್‌ನಲ್ಲಿ ಇದು ZeroDivisionError ಅನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ.

try...except ಇಲ್ಲದೆ:

numerator = 10
denominator = 0
result = numerator / denominator # ಇಲ್ಲಿ ಪ್ರೋಗ್ರಾಮ್ ಕ್ರ್ಯಾಶ್ ಆಗುತ್ತದೆ
print("ಈ ಸಾಲು ಎಂದಿಗೂ ಪ್ರಿಂಟ್ ಆಗುವುದಿಲ್ಲ.")
ಔಟ್‌ಪುಟ್: ZeroDivisionError: division by zero

try...except ನೊಂದಿಗೆ:

try:
    numerator = 10
    denominator = 0
    result = numerator / denominator
except ZeroDivisionError:
    print("ದೋಷ: ಶೂನ್ಯದಿಂದ ಭಾಗಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ!")

print("ಪ್ರೋಗ್ರಾಮ್ ಯಶಸ್ವಿಯಾಗಿ ಮುಂದುವರಿಯಿತು.")
ಔಟ್‌ಪುಟ್:
ದೋಷ: ಶೂನ್ಯದಿಂದ ಭಾಗಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ!
ಪ್ರೋಗ್ರಾಮ್ ಯಶಸ್ವಿಯಾಗಿ ಮುಂದುವರಿಯಿತು.


ಅನೇಕ except ಬ್ಲಾಕ್‌ಗಳು

ಒಂದು try ಬ್ಲಾಕ್ ಅನೇಕ ರೀತಿಯ ದೋಷಗಳನ್ನು ಉಂಟುಮಾಡಬಹುದು. ಪ್ರತಿಯೊಂದು ದೋಷಕ್ಕೂ ಪ್ರತ್ಯೇಕ except ಬ್ಲಾಕ್ ಅನ್ನು ಬರೆಯಬಹುದು.

try:
    numbers = [1, 2, 3]
    value = int("abc") # ValueError
    print(numbers[5])  # IndexError
except ValueError:
    print("ದೋಷ: ಅಮಾನ್ಯ ಸಂಖ್ಯೆಯನ್ನು ಪರಿವರ್ತಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.")
except IndexError:
    print("ದೋಷ: ಲಿಸ್ಟ್‌ನ ಇಂಡೆಕ್ಸ್ ವ್ಯಾಪ್ತಿಯಿಂದ ಹೊರಗಿದೆ.")

else ಮತ್ತು finally ಬ್ಲಾಕ್‌ಗಳು

else ಬ್ಲಾಕ್

try ಬ್ಲಾಕ್‌ನಲ್ಲಿ ಯಾವುದೇ ದೋಷ ಸಂಭವಿಸದಿದ್ದರೆ ಮಾತ್ರ else ಬ್ಲಾಕ್ ಚಲಿಸುತ್ತದೆ.

finally ಬ್ಲಾಕ್

finally ಬ್ಲಾಕ್‌ನಲ್ಲಿರುವ ಕೋಡ್ ಯಾವಾಗಲೂ ಚಲಿಸುತ್ತದೆ - ದೋಷ ಸಂಭವಿಸಲಿ ಅಥವಾ ಇಲ್ಲದಿರಲಿ. ಫೈಲ್‌ಗಳನ್ನು ಮುಚ್ಚುವುದು ಅಥವಾ ಡೇಟಾಬೇಸ್ ಸಂಪರ್ಕಗಳನ್ನು ಕಡಿತಗೊಳಿಸುವಂತಹ ಕ್ಲೀನಪ್ ಕಾರ್ಯಗಳಿಗಾಗಿ ಇದನ್ನು ಹೆಚ್ಚಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ.

try:
    num_str = input("ಒಂದು ಸಂಖ್ಯೆಯನ್ನು ನಮೂದಿಸಿ: ")
    num = int(num_str)
except ValueError:
    print("ದಯವಿಟ್ಟು ಮಾನ್ಯವಾದ ಪೂರ್ಣಾಂಕವನ್ನು ನಮೂದಿಸಿ.")
else:
    print(f"ನೀವು ನಮೂದಿಸಿದ ಸಂಖ್ಯೆಯ ವರ್ಗ: {num ** 2}")
finally:
    print("ಕಾರ್ಯಕ್ರಮದ ಈ ಭಾಗವು ಯಾವಾಗಲೂ ಚಲಿಸುತ್ತದೆ.")

ಪ್ರಮುಖ ಅಂತರ್ನಿರ್ಮಿತ ಎಕ್ಸೆಪ್ಷನ್‌ಗಳು

ಎಕ್ಸೆಪ್ಷನ್ ಕಾರಣ
ValueError ಫಂಕ್ಷನ್‌ಗೆ ಸರಿಯಾದ ಟೈಪ್‌ನ ಆದರೆ ಅಮಾನ್ಯ ಮೌಲ್ಯವನ್ನು ನೀಡಿದಾಗ.
TypeError ತಪ್ಪಾದ ಡೇಟಾ ಟೈಪ್ ಮೇಲೆ ಕಾರ್ಯಾಚರಣೆ ನಡೆಸಿದಾಗ ('5' + 2).
IndexError ಲಿಸ್ಟ್ ಅಥವಾ ಟ್ಯೂಪಲ್‌ನ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದ ಇಂಡೆಕ್ಸ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿದಾಗ.
KeyError ಡಿಕ್ಷನರಿಯಲ್ಲಿ ಇಲ್ಲದ ಕೀ ಅನ್ನು ಪ್ರವೇಶಿಸಿದಾಗ.
FileNotFoundError ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದ ಫೈಲ್ ಅನ್ನು ತೆರೆಯಲು ಪ್ರಯತ್ನಿಸಿದಾಗ.
NameError ಡಿಫೈನ್ ಮಾಡದ ವೇರಿಯೇಬಲ್ ಅನ್ನು ಬಳಸಿದಾಗ.

ದೋಷ ನಿರ್ವಹಣೆಯು ದೃಢವಾದ ಮತ್ತು ಬಳಕೆದಾರ-ಸ್ನೇಹಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಅತ್ಯಗತ್ಯವಾದ ಕೌಶಲ್ಯವಾಗಿದೆ.