ವಿಷಯಕ್ಕೆ ತೆರಳಿ

ಪೈಥಾನ್ ಎರರ್ ಮತ್ತು ಎಕ್ಸೆಪ್ಶನ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್: ಸಂದರ್ಶನ ಪ್ರಶ್ನೆಗಳು ಮತ್ತು ಉತ್ತರಗಳು

1. ಸಿಂಟ್ಯಾಕ್ಸ್ ಎರರ್ (Syntax Error) ಮತ್ತು ಎಕ್ಸೆಪ್ಶನ್ (Exception) ನಡುವಿನ ವ್ಯತ್ಯಾಸವೇನು?

ಉತ್ತರ:

  • ಸಿಂಟ್ಯಾಕ್ಸ್ ಎರರ್:

    • ಇದು ಪೈಥಾನ್‌ನ ವ್ಯಾಕರಣ ನಿಯಮಗಳನ್ನು ಉಲ್ಲಂಘಿಸಿದಾಗ ಸಂಭವಿಸುತ್ತದೆ.
    • ಪ್ರೋಗ್ರಾಂ ರನ್ ಆಗುವ ಮೊದಲೇ ಪಾರ್ಸರ್ ಈ ಎರರ್‌ಗಳನ್ನು ಪತ್ತೆ ಮಾಡುತ್ತದೆ.
    • ಉದಾಹರಣೆ: ಮಿಸ್ಸಿಂಗ್ ಕಾಲನ್ (:), ತಪ್ಪಾದ ಇಂಡೆಂಟೇಶನ್.
  • ಎಕ್ಸೆಪ್ಶನ್ (Exception) ಅಥವಾ ರನ್‌ಟೈಮ್ ಎರರ್:

    • ಇದು ಪ್ರೋಗ್ರಾಂ ರನ್ ಆಗುತ್ತಿರುವಾಗ ಸಂಭವಿಸುವ ಎರರ್.
    • ಸಿಂಟ್ಯಾಕ್ಸ್ ಸರಿಯಾಗಿದ್ದರೂ, ಲಾಜಿಕ್‌ನಲ್ಲಿ ದೋಷವಿದ್ದಾಗ ಇದು ಸಂಭವಿಸುತ್ತದೆ.
    • ಉದಾಹರಣೆ: ZeroDivisionError (ಸೊನ್ನೆಯಿಂದ ಭಾಗಿಸುವುದು), NameError (ಡಿಫೈನ್ ಮಾಡದ ವೇರಿಯೇಬಲ್ ಬಳಸುವುದು).

2. ಪೈಥಾನ್‌ನಲ್ಲಿ ಎಕ್ಸೆಪ್ಶನ್‌ಗಳನ್ನು ಹೇಗೆ ಹ್ಯಾಂಡಲ್ ಮಾಡಲಾಗುತ್ತದೆ?

ಉತ್ತರ: ಎಕ್ಸೆಪ್ಶನ್‌ಗಳನ್ನು try...except ಬ್ಲಾಕ್ ಬಳಸಿ ಹ್ಯಾಂಡಲ್ ಮಾಡಲಾಗುತ್ತದೆ.

  • try ಬ್ಲಾಕ್: ಎರರ್ ಸಂಭವಿಸಬಹುದಾದ ಕೋಡ್ ಅನ್ನು ಈ ಬ್ಲಾಕ್‌ನಲ್ಲಿ ಇರಿಸಲಾಗುತ್ತದೆ.
  • except ಬ್ಲಾಕ್: try ಬ್ಲಾಕ್‌ನಲ್ಲಿ ಎಕ್ಸೆಪ್ಶನ್ ಸಂಭವಿಸಿದರೆ, ಈ ಬ್ಲಾಕ್‌ನಲ್ಲಿರುವ ಕೋಡ್ ಎಕ್ಸಿಕ್ಯೂಟ್ ಆಗುತ್ತದೆ. ಇದು ಪ್ರೋಗ್ರಾಂ ಕ್ರ್ಯಾಶ್ ಆಗುವುದನ್ನು ತಡೆಯುತ್ತದೆ.

ಉದಾಹರಣೆ:

try:
    result = 10 / 0
except ZeroDivisionError:
    print("Error: Cannot divide by zero!")

3. try...except...else...finally ಬ್ಲಾಕ್ ಅನ್ನು ವಿವರಿಸಿ.

ಉತ್ತರ:

  • try: ಎರರ್ ಸಂಭವಿಸಬಹುದಾದ ಕೋಡ್.
  • except: try ಬ್ಲಾಕ್‌ನಲ್ಲಿ ಎರರ್ ಸಂಭವಿಸಿದರೆ ಎಕ್ಸಿಕ್ಯೂಟ್ ಆಗುತ್ತದೆ.
  • else: try ಬ್ಲಾಕ್‌ನಲ್ಲಿ ಯಾವುದೇ ಎರರ್ ಸಂಭವಿಸದಿದ್ದರೆ ಎಕ್ಸಿಕ್ಯೂಟ್ ಆಗುತ್ತದೆ.
  • finally: ಎರರ್ ಸಂಭವಿಸಲಿ ಅಥವಾ ಇಲ್ಲದಿರಲಿ, ಈ ಬ್ಲಾಕ್ ಯಾವಾಗಲೂ ಎಕ್ಸಿಕ್ಯೂಟ್ ಆಗುತ್ತದೆ. ಇದನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ರಿಸೋರ್ಸ್‌ಗಳನ್ನು ಕ್ಲೀನ್ ಮಾಡಲು (ಉದಾ: ಫೈಲ್ ಕ್ಲೋಸ್ ಮಾಡಲು) ಬಳಸಲಾಗುತ್ತದೆ.

ಉದಾಹರಣೆ:

try:
    num = int(input("Enter a number: "))
except ValueError:
    print("Invalid input. Please enter a number.")
else:
    print(f"You entered {num}.")
finally:
    print("Execution finished.")

4. raise ಕೀವರ್ಡ್‌ನ ಉಪಯೋಗವೇನು?

ಉತ್ತರ: raise ಕೀವರ್ಡ್ ಅನ್ನು ಬಳಸಿ ನಾವೇ ಕಸ್ಟಮ್ ಎಕ್ಸೆಪ್ಶನ್‌ಗಳನ್ನು ಅಥವಾ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಎಕ್ಸೆಪ್ಶನ್‌ಗಳನ್ನು ಪ್ರಚೋದಿಸಬಹುದು ( trigger). ಒಂದು ನಿರ್ದಿಷ್ಟ ಷರತ್ತು ಪೂರೈಸದಿದ್ದಾಗ ಪ್ರೋಗ್ರಾಂನ ಹರಿವನ್ನು ನಿಲ್ಲಿಸಲು ಇದು ಉಪಯುಕ್ತ.

ಉದಾಹರಣೆ:

def check_age(age):
    if age < 18:
        raise ValueError("Age must be 18 or older.")
    else:
        print("Eligible to vote.")


try:
    check_age(15)
except ValueError as e:
    print(f"Error: {e}")

5. ಪೈಥಾನ್‌ನಲ್ಲಿರುವ ಕೆಲವು ಸಾಮಾನ್ಯ ಬಿಲ್ಟ್-ಇನ್ ಎಕ್ಸೆಪ್ಶನ್‌ಗಳು ಯಾವುವು?

ಉತ್ತರ:

  • TypeError: ತಪ್ಪಾದ ಡೇಟಾ ಟೈಪ್ ಮೇಲೆ ಆಪರೇಷನ್ ಮಾಡಿದಾಗ.
  • ValueError: ಫಂಕ್ಷನ್‌ಗೆ ಸರಿಯಾದ ಟೈಪ್‌ನ ಆರ್ಗ್ಯುಮೆಂಟ್ ನೀಡಿದರೂ, ಅದರ ಮೌಲ್ಯ ತಪ್ಪಾಗಿದ್ದಾಗ.
  • IndexError: ಲಿಸ್ಟ್ ಅಥವಾ ಟಪಲ್‌ನಲ್ಲಿ ಇಲ್ಲದ ಇಂಡೆಕ್ಸ್ ಅನ್ನು ಬಳಸಿದಾಗ.
  • KeyError: ಡಿಕ್ಷನರಿಯಲ್ಲಿ ಇಲ್ಲದ ಕೀ ಅನ್ನು ಬಳಸಿದಾಗ.
  • FileNotFoundError: ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದ ಫೈಲ್ ಅನ್ನು ತೆರೆಯಲು ಪ್ರಯತ್ನಿಸಿದಾಗ.
  • AttributeError: ಆಬ್ಜೆಕ್ಟ್‌ನಲ್ಲಿ ಇಲ್ಲದ ಅಟ್ರಿಬ್ಯೂಟ್ ಅಥವಾ ಮೆಥಡ್ ಅನ್ನು ಬಳಸಿದಾಗ.