کارکردن لەگەڵ هەڵەکان (Error Handling)

پایثۆن وانەی حەوتەم: چۆنێتی مامەڵەکردن لەگەڵ هەڵە یان ئیستسناء لە بەرنامەکاندا.

فێربوونی پایتۆن

February 5, 2025

Error Handling (Exception Handling)

وانە حەوتەم: کارکردن لەگەڵ هەڵەکان (Error Handling)

بەخێربێیت بۆ وانە حەوتەم لە سلسلەی فێربوونی زمانی پایثۆن! لەم وانەیەدا، ئێمە بە تێکچوونی چۆنیەتی کارکردن لەگەڵ هەڵەکان یان استثناکان (Exceptions) دەچینە سەر. کارکردن لەگەڵ هەڵەکان بەشێکی زۆر گرنگە لە بەرنامەنووسیدا، چونکە یارمەتی ئەوەی دەدات کە کۆنتڕۆڵی تەواوی ئەوەت بدەیت کە چۆن بەرنامەکە ئیشی لێکردەوە کاتێک کێشەیەکی بەپێشاپێ نەدروست بوو لە کاتی ڕوولەکردنی بەرنامەکە.

 

1. استثناکان (Exceptions) چییە؟

کاتێک هەڵەیەک لە کاتی ڕوولەکردنی بەرنامەی پایثۆن ڕوودەدات، استثناء (Exception) دروست دەبێت. ئەگەر ئەم استثنایە بە شێوەی دروست نەکراوە شاردنەوە بکرێت، بەرنامەکە وەستێت و پەیامێکی هەڵە دەردەچێت.

 

نموونە:

ئەگەر ئەم کۆدە بەکاربهێنرێت، ئەم هەڵەیە دەردەچێت:

 
ZeroDivisionError: division by zero

جۆرە هەڵەکانی گشتی

  • ZeroDivisionError: کاتێک بەسەر صفر بکرێت.
  • TypeError: کاتێک جۆرێکی داتا بە شێوەیەکی هەڵە بەکاربێت.
  • ValueError: کاتێک بەهایەکی نادروست تێپەڕێت.
  • FileNotFoundError: کاتێک هەوڵدان بۆ کراوەکردنی پەڕگەیەکی بوونی نەبێت.
  • IndexError: کاتێک هەوڵدان بۆ دەستگەیشتن بە فهرستێکی نەدروست لە لیست.
  • KeyError: کاتێک هەوڵدان بۆ دەستگەیشتن بە کلیلێکی نەدروست لە فرهێنگ.
 

2. چۆنیەتی کارکردن لەگەڵ هەڵەکان بەکارهێنانی try و except

بۆ ڕەتکردنەوەی وەستاندنی بەرنامەکە کاتێک هەڵەیەک ڕوودەدات، ئێمە دەتوانین بەکاربێنین بنیاتی try و except . کۆدەکەی کە دەکات هەڵە ڕوودێت دەچێت لە ناو کتڵەکەی try ، و ئەگەر هەڵەیەک ڕوودێت، کۆدەکەی لە ناو کتڵەکەی except ڕوولەکرێت.

 

أ. شێوەپێدانی بنچینەیی

 
try:
# کۆدەکەی کە دەکات هەڵە ڕوودێت
x = 10 / 0
except ZeroDivisionError:
# کۆدەکەی کە ڕوولەکرێت ئەگەر هەڵە ڕوودێت
print("نابێت بەسەر صفر بکرێت!")

تێبینی: ئەگەر بەرنامەکەت پێویست بێت هەموو جۆرە هەڵەکان بە شێوەیەکی گشتی شاردنەوە بکرێن، ئێمە دەتوانین بەکاربێنین except تەنها.

 
try:
x = 10 / 0
except:
print("هەڵەیەک ڕوویدا!")

3. شاردنەوەی چەندین استثناء

ئێمە دەتوانین چەندین جۆرێک لە هەڵە بە شێوەی ڕاستەقینە شاردنەوە بکەین بە بەکارهێنانی چەند کتڵەی except .

 
try:
num = int(input("ژمارەیەک داخڵ بکە: "))
result = 10 / num
except ZeroDivisionError:
print("نابێت بەسەر صفر بکرێت!")
except ValueError:
print("پێویستە ژمارەیەکی باش داخڵ بکەیت!")

4. بەکارهێنانی else و finally

أ. کتڵەی else

کتڵەی else بۆ ڕوولەکردنی کۆدەکەی بەکاردێت ئەگەر هیچ هەڵەیەک لە کتڵەی try دا ڕوونەبوو.

try:
num = int(input("ژمارەیەک داخڵ بکە: "))
result = 10 / num
except ZeroDivisionError:
print("نابێت بەسەر صفر بکرێت!")
except ValueError:
print("پێویستە ژمارەیەکی باش داخڵ بکەیت!")
else:
print(f"ئەنجام: {result}")
 

ب. کتڵەی finally

کتڵەی finally بۆ ڕوولەکردنی کۆدەکەی بەکاردێت بە بێ پێویست بەوەی هەڵە ڕوودا یان نە. زۆرترین بەکارهێنانی ئەمە هەیە بۆ داخڵکردنی پەڕگەکان یان پاککردنی کەسروەکان.

try:
file = open("example.txt", "r")
content = file.read()
except FileNotFoundError:
print("پەڕگەکە بوونی نییە!")
finally:
file.close() # داخڵکردنی پەڕگە بە بێ پێویست بەوەی هەڵە ڕوودا یان نە

5. بەرزکردنەوەی استثناکان بە دەست بەکارهێنانی raise

ئێمە دەتوانین بە دەست خۆمان استثناکان بەرز بکەین بە بەکارهێنانی وشەی raise . ئەمە یارمەتی ئەوەی دەدات کە بەرنامەکە وەستانێت ئەگەر شەرطێک قوڵ نەبێت.

def check_age(age):
if age < 0:
raise ValueError("تەمەن نابێت کەمتر بێت لە سفر!")
elif age < 18:
print("تۆ منداڵیت.")
else:
print("تۆ بەرزە.")


try:
check_age(-5)
except ValueError as e:
print(e) # ئەنجام: تەمەن نابێت کەمتر بێت لە سفر!
 

6. کارەکانی کارا

کارەکانی ١: سەیرکردنی بوونی پەڕگە

import os


file_name = "example.txt"


try:
with open(file_name, "r") as file:
print(file.read())
except FileNotFoundError:
print(f"پەڕگەکە {file_name} بوونی نییە!")
 

کارەکانی ٢: سەیرکردنی داخڵکردنی بەکارهێنەر

 
try:
num = int(input("ژمارەیەک داخڵ بکە: "))
print(f"ژمارەکەی داخڵکراوەتەوە: {num}")
except ValueError:
print("پێویستە ژمارەیەکی باش داخڵ بکەیت!")

کارەکانی ٣: کارکردن لەگەڵ هەڵەکان لە لیستەکان

my_list = [1, 2, 3]


try:
print(my_list[5]) # فهرستی نەدروست
except IndexError:
print("فهرستی نەدروست لە لیستدا!")
 

7. پێشنیارەکان لەسەر کارکردن لەگەڵ هەڵەکان

  • بەکارهێنانی try و except بە ئاگادارییەوە:
    مە هەرگیز try و except بەکارنەهێنە بۆ ڕەتکردنەوەی هەموو هەڵەکان. تەنها هەڵەکانی بەکاربێنە کە پێشبینی دەکەیت.

  • دیاریکردنی جۆری استثناء:
    هەوڵبدە هەموو جار جۆری استثناء بە شێوەی ڕاستەقینە دیاری بکەیت بە جیاتی بەکارهێنانی exceptی گشتی.

  • بەکارهێنانی finally بۆ داخڵکردنی کەسروەکان:
    ئەگەر بەکارهێنەر پەڕگەکان یان بنکەی داتاکان، بەکاربێنە finally بۆ دڵنیابوون لەوەی کە کەسروەکان داخڵکراونەتەوە تەنانەت ئەگەر هەڵەیەک ڕوودا.

  • بەرزکردنەوەی هەڵەکانی باشەکان:
    بەکاربێنە raise بۆ بەرزکردنەوەی هەڵەکانی دیاریکراو کاتێک پێویستە.

 

کۆتایی

لەم وانەیەدا، ئێمە فێر بووین چۆن هەڵەکان یان استثناکان لە پایثۆندا بەکاربێنرێن بە بەکارهێنانی try , except , else , و finally . ئەم مەرجانە زۆر گرنگن بۆ ئەوەی بەرنامەکانت باشتر و پایدارتر بن.

 

لە وانەی داهاتوودا، ئێمە بیردەردەچینەوە بۆ کارکردن لەگەڵ ماژولەکان (Modules) و چۆنیەتی بەکارهێنانیان بۆ دووبارە بەکارهێنانی کۆد و ڕێکخستنی بە شێوەی باشتر. بەردەوام بمێنە لە چارەسەرکردن و هیچ شک نەکە لە پرسینەوەی پرسیارەکانت ئەگەر پێویست بە یارمەتیت هەبێت!

 

🚀 ئێستاش ئەتوانیت بەردەوام بمێنە لە ڕێگایەکی راستەقینە بۆ بوونی بەرنامەنووسێکی پێشکەوتوو!

  • Web development tutorial A-0

    فێربوونی بەرنامەسازی ماڵپەڕ A-0

    لە سفرەوە بۆ پڕۆ: گەشتی تەواوی پەرەپێدانی وێب

    بینینی بابەت
  • Differences Between Android and iOS

    جیاوازی نێوان ئەندرۆید و ئای ئۆ ئێس

    بەرنامەسازی ئەپی مۆبایل: جیاوازی نێوان ئەندرۆید و ئای ئۆ ئێس و باشترین پراکتیزەکان

    بینینی بابەت
  • Game Development with Unity

    پەرەپێدانی یاری بە بەکارهێنانی یونیتی

    پەرەپێدانی یاری لەگەڵ یونیتی: لە بیرۆکەوە بۆ بەرهەمی تەواو

    بینینی بابەت
  • Mastering Programming with Python

    شارەزایی لە بەرنامەسازی بە بەکارهێنانی پایتۆن

    شارەزابوون لە بەرنامەسازی بە پایتۆن: پڕۆژە و ئامۆژگاری دەستی

    بینینی بابەت
  • What are the benefits of websites

    سوودەکانی ماڵپەڕەکان چین؟

    سوودەکانی ماڵپەڕی کۆمپانیاکان

    بینینی بابەت
  • Web development tutorial A-1

    فێربوونی بەرنامەسازی ماڵپەڕ A-1

    وانەی یەکەم: فێربوونی HTML لە سفرەوە - پێشەکییەکی گشتگیر لەگەڵ ڕێکخستنی ئامرازەکان

    بینینی بابەت
  • Web development tutorial A-2

    فێربوونی بەرنامەسازی ماڵپەڕ A-2

    وانەی دووەم: فێربوونی HTML لە سفرەوە - تاگە پێشکەوتووەکان و خشتەکان

    بینینی بابەت
  • Artificial Intelligence Qwen AI

    ئینتەلیکەنی ئارەزویی Qwen AI

    Qwen AI مۆدێلی زانستی ئارەزویییە چەندکارەیە کە زمانەکان پشتگیری دەکات و کارە خەیاڵی و کاراکەرەکان دەڕێژێت

    بینینی بابەت