Skip to content

ಫೈಲ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್‌ನಲ್ಲಿ ದೋಷ ನಿರ್ವಹಣೆ

ಫೈಲ್‌ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ, ಹಲವಾರು ದೋಷಗಳು (exceptions) ಸಂಭವಿಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ನೀವು ಓದಲು ಪ್ರಯತ್ನಿಸುತ್ತಿರುವ ಫೈಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದಿರಬಹುದು, ಅಥವಾ ನಿಮಗೆ ಫೈಲ್ ಅನ್ನು ಬರೆಯಲು ಅನುಮತಿ ಇಲ್ಲದಿರಬಹುದು. ಈ ದೋಷಗಳನ್ನು ಸರಿಯಾಗಿ ನಿರ್ವಹಿಸದಿದ್ದರೆ, ನಿಮ್ಮ ಪ್ರೋಗ್ರಾಮ್ ಕ್ರ್ಯಾಶ್ ಆಗುತ್ತದೆ.

try...except ಬ್ಲಾಕ್‌ಗಳನ್ನು ಬಳಸಿ, ನಾವು ಈ ದೋಷಗಳನ್ನು ಹಿಡಿದು, ಬಳಕೆದಾರರಿಗೆ ಅರ್ಥಪೂರ್ಣ ಸಂದೇಶಗಳನ್ನು ನೀಡಬಹುದು ಮತ್ತು ಪ್ರೋಗ್ರಾಮ್ ಅನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಮುಂದುವರಿಸಬಹುದು.


ಸಾಮಾನ್ಯ ಫೈಲ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್ ದೋಷಗಳು

1. FileNotFoundError

ನೀವು ತೆರೆಯಲು ಪ್ರಯತ್ನಿಸುತ್ತಿರುವ ಫೈಲ್ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಪಾತ್‌ನಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದಿದ್ದಾಗ ಈ ದೋಷ ಸಂಭವಿಸುತ್ತದೆ.

try:
    with open('non_existent_file.txt', 'r') as f:
        content = f.read()
except FileNotFoundError:
    print("ದೋಷ: ಕ್ಷಮಿಸಿ, ಆ ಫೈಲ್ ಕಂಡುಬಂದಿಲ್ಲ.")

2. PermissionError

ಫೈಲ್ ಅನ್ನು ತೆರೆಯಲು, ಓದಲು, ಅಥವಾ ಬರೆಯಲು ನಿಮಗೆ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಮಟ್ಟದಲ್ಲಿ ಅನುಮತಿ ಇಲ್ಲದಿದ್ದಾಗ ಈ ದೋಷ ಸಂಭವಿಸುತ್ತದೆ.

# ಉದಾಹರಣೆಗೆ, ರೂಟ್ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ಫೈಲ್ ರಚಿಸಲು ಪ್ರಯತ್ನಿಸುವುದು (ಸಾಮಾನ್ಯವಾಗಿ ಅನುಮತಿ ಇರುವುದಿಲ್ಲ)
try:
    with open('/new_file.txt', 'w') as f:
        f.write("test")
except PermissionError:
    print("ದೋಷ: ಈ ಸ್ಥಳದಲ್ಲಿ ಫೈಲ್ ರಚಿಸಲು ಅನುಮತಿ ಇಲ್ಲ.")

3. IsADirectoryError

ನೀವು ಫೈಲ್‌ನ ಬದಲು ಡೈರೆಕ್ಟರಿಯನ್ನು ತೆರೆಯಲು ಪ್ರಯತ್ನಿಸಿದಾಗ ಈ ದೋಷ ಸಂಭವಿಸುತ್ತದೆ.

try:
    # 'docs' ಒಂದು ಡೈರೆಕ್ಟರಿ, ಫೈಲ್ ಅಲ್ಲ
    with open('docs', 'r') as f:
        content = f.read()
except IsADirectoryError:
    print("ದೋಷ: ನೀವು ಫೈಲ್‌ನ ಬದಲು ಡೈರೆಕ್ಟರಿಯನ್ನು ತೆರೆಯಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದೀರಿ.")

4. io.UnsupportedOperation

ತಪ್ಪಾದ ಮೋಡ್‌ನಲ್ಲಿ ಕಾರ್ಯಾಚರಣೆ ನಡೆಸಲು ಪ್ರಯತ್ನಿಸಿದಾಗ ಈ ದೋಷ ಸಂಭವಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಓದುವ ಮೋಡ್‌ನಲ್ಲಿ ('r') ತೆರೆದ ಫೈಲ್‌ಗೆ ಬರೆಯಲು ಪ್ರಯತ್ನಿಸುವುದು.

try:
    with open('sample.txt', 'r') as f:
        f.write("Hello")
except (IOError, ValueError) as e: # ಹಳೆಯ ಪೈಥಾನ್ ಆವೃತ್ತಿಗಳಲ್ಲಿ IOError/ValueError ಬರಬಹುದು
    print(f"ದೋಷ: ಬೆಂಬಲಿಸದ ಕಾರ್ಯಾಚರಣೆ. {e}")
except Exception as e: # ಆಧುನಿಕ ಪೈಥಾನ್‌ನಲ್ಲಿ io.UnsupportedOperation
    print(f"ದೋಷ: {e}")

ದೃಢವಾದ ಫೈಲ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್

ಒಂದು ಉತ್ತಮ ಅಭ್ಯಾಸವೆಂದರೆ, ನಿರ್ದಿಷ್ಟ ದೋಷಗಳನ್ನು ಹಿಡಿಯುವುದು ಮತ್ತು ಬಳಕೆದಾರರಿಗೆ ಸ್ಪಷ್ಟವಾದ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ನೀಡುವುದು.

file_path = 'data/my_data.txt'

try:
    with open(file_path, 'r', encoding='utf-8') as f:
        print("ಫೈಲ್ ಯಶಸ್ವಿಯಾಗಿ ತೆರೆಯಲಾಗಿದೆ.")
        content = f.read()
        # ಇಲ್ಲಿ ಡೇಟಾದೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಿ
        print(content)

except FileNotFoundError:
    print(f"ದೋಷ: '{file_path}' ಎಂಬ ಫೈಲ್ ಕಂಡುಬಂದಿಲ್ಲ.")
except PermissionError:
    print(f"ದೋಷ: '{file_path}' ಫೈಲ್ ಅನ್ನು ಪ್ರವೇಶಿಸಲು ಅನುಮತಿ ಇಲ್ಲ.")
except Exception as e:
    # ಅನಿರೀಕ್ಷಿತ ದೋಷಗಳಿಗಾಗಿ
    print(f"ಒಂದು ಅನಿರೀಕ್ಷಿತ ದೋಷ ಸಂಭವಿಸಿದೆ: {e}")

finally:
    print("ಫೈಲ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್ ಕಾರ್ಯಾಚರಣೆ ಮುಗಿದಿದೆ.")
ಈ ರೀತಿಯ ದೋಷ ನಿರ್ವಹಣೆಯು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಹೆಚ್ಚು ದೃಢವಾದ ಮತ್ತು ಬಳಕೆದಾರ-ಸ್ನೇಹಿಯನ್ನಾಗಿ ಮಾಡುತ್ತದೆ.