ಪೈಥಾನ್ ಎರರ್ ಮತ್ತು ಎಕ್ಸೆಪ್ಶನ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್: ಸಂದರ್ಶನ ಪ್ರಶ್ನೆಗಳು ಮತ್ತು ಉತ್ತರಗಳು
1. ಸಿಂಟ್ಯಾಕ್ಸ್ ಎರರ್ (Syntax Error) ಮತ್ತು ಎಕ್ಸೆಪ್ಶನ್ (Exception) ನಡುವಿನ ವ್ಯತ್ಯಾಸವೇನು?
ಉತ್ತರ:
-
ಸಿಂಟ್ಯಾಕ್ಸ್ ಎರರ್:
- ಇದು ಪೈಥಾನ್ನ ವ್ಯಾಕರಣ ನಿಯಮಗಳನ್ನು ಉಲ್ಲಂಘಿಸಿದಾಗ ಸಂಭವಿಸುತ್ತದೆ.
- ಪ್ರೋಗ್ರಾಂ ರನ್ ಆಗುವ ಮೊದಲೇ ಪಾರ್ಸರ್ ಈ ಎರರ್ಗಳನ್ನು ಪತ್ತೆ ಮಾಡುತ್ತದೆ.
- ಉದಾಹರಣೆ: ಮಿಸ್ಸಿಂಗ್ ಕಾಲನ್ (
:), ತಪ್ಪಾದ ಇಂಡೆಂಟೇಶನ್.
-
ಎಕ್ಸೆಪ್ಶನ್ (Exception) ಅಥವಾ ರನ್ಟೈಮ್ ಎರರ್:
- ಇದು ಪ್ರೋಗ್ರಾಂ ರನ್ ಆಗುತ್ತಿರುವಾಗ ಸಂಭವಿಸುವ ಎರರ್.
- ಸಿಂಟ್ಯಾಕ್ಸ್ ಸರಿಯಾಗಿದ್ದರೂ, ಲಾಜಿಕ್ನಲ್ಲಿ ದೋಷವಿದ್ದಾಗ ಇದು ಸಂಭವಿಸುತ್ತದೆ.
- ಉದಾಹರಣೆ:
ZeroDivisionError(ಸೊನ್ನೆಯಿಂದ ಭಾಗಿಸುವುದು),NameError(ಡಿಫೈನ್ ಮಾಡದ ವೇರಿಯೇಬಲ್ ಬಳಸುವುದು).
2. ಪೈಥಾನ್ನಲ್ಲಿ ಎಕ್ಸೆಪ್ಶನ್ಗಳನ್ನು ಹೇಗೆ ಹ್ಯಾಂಡಲ್ ಮಾಡಲಾಗುತ್ತದೆ?
ಉತ್ತರ:
ಎಕ್ಸೆಪ್ಶನ್ಗಳನ್ನು try...except ಬ್ಲಾಕ್ ಬಳಸಿ ಹ್ಯಾಂಡಲ್ ಮಾಡಲಾಗುತ್ತದೆ.
tryಬ್ಲಾಕ್: ಎರರ್ ಸಂಭವಿಸಬಹುದಾದ ಕೋಡ್ ಅನ್ನು ಈ ಬ್ಲಾಕ್ನಲ್ಲಿ ಇರಿಸಲಾಗುತ್ತದೆ.exceptಬ್ಲಾಕ್:tryಬ್ಲಾಕ್ನಲ್ಲಿ ಎಕ್ಸೆಪ್ಶನ್ ಸಂಭವಿಸಿದರೆ, ಈ ಬ್ಲಾಕ್ನಲ್ಲಿರುವ ಕೋಡ್ ಎಕ್ಸಿಕ್ಯೂಟ್ ಆಗುತ್ತದೆ. ಇದು ಪ್ರೋಗ್ರಾಂ ಕ್ರ್ಯಾಶ್ ಆಗುವುದನ್ನು ತಡೆಯುತ್ತದೆ.
ಉದಾಹರಣೆ:
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: ಆಬ್ಜೆಕ್ಟ್ನಲ್ಲಿ ಇಲ್ಲದ ಅಟ್ರಿಬ್ಯೂಟ್ ಅಥವಾ ಮೆಥಡ್ ಅನ್ನು ಬಳಸಿದಾಗ.