CodeGym /Kurslar /Python SELF AZ /Məşhur istisnalar

Məşhur istisnalar

Python SELF AZ
Səviyyə , Dərs
Mövcuddur

2.1 İstisna Yaratmaq

Məsələni həll edə bilmirsənsə — ona rəhbərlik et. Əgər proqramda baş verən xətalardan qaça bilməyəcəyiksə, onları idarə etməyi öyrənməliyik. Bu məqsədlə gəlin şüurlu şəkildə istisnalar yaratmağı öyrənək.

Ən sadə istisna nümunəsi — nul ilə bölmə. Proqram da olduqca sadədir:


x = 100 / 0
        

Belə kod xətayla işləyəcək:


Traceback (most recent call last):
    File "", line 1, in 
         x = 100 / 0
        ~~~^~   
ZeroDivisionError: division by zero
        

ZeroDivisionError — bu istisnanın adı, division by zero isə onun qısa təsviridir. Həmçinin Python, bu istisnanın baş verdiyi sətrin nömrəsini bildirməkdədir.

Məlumat tiplərinin uyğunsuzluğu

Təbii ki, başqa istisnalar da mümkündür. Məsələn, bir sətir ilə ədədi toplamağa cəhd edərkən:


s = "100" + 100
        

TypeError istisnası baş verəcək:


Traceback (most recent call last):
    File "", line 1, in 
TypeError: unsupported operand type(s) for +: 'str' and 'int'
        

Siyahının sərhədlərini aşmaq

Daha bir çox yayılmış xəta, istisna yaradan səbəb, siyahıda olmayan elementə müraciət etmə cəhdidir:


my_list = [1, 2, 3]
print(my_list[10])
        

IndexError istisnası baş verəcək:


Traceback (most recent call last):
    print(my_list[10])
        ~~~~~~~^^^^
IndexError: list index out of range
        

Onlardan neçə dənə var? Minlərlə fərqli istisna növü var. Üstəlik, hər hansı xüsusi vəziyyəti təsvir etmək üçün mövcud olanlardan kifayət etmirsə, siz öz istisnalarınızı yarada bilərsiniz. Amma çox populyar olanlar o qədər də çox deyil.

2.2 Ən məşhur istisnaların siyahısı

İstisnalar çoxdur, amma yeni başlayan biri kimi sənə ən məşhurları ilə tanış olmaq faydalı olar. Aşağıda onların cədvəlini təqdim edirəm:

İstisna Təsvir
Exception Bütün istisnalar üçün əsas sinif.
IndexError Silsilədə (məsələn, siyahı və ya tupl) mövcud olmayan indeksə müraciət zamanı yaranır.
KeyError Sözlükdə mövcud olmayan açara müraciət zamanı yaranır.
NameError Mövcud olmayan dəyişənə müraciət zamanı yaranır.
RuntimeError İcra zamanı digər növ istisnalara aid olmayan ümumi səhv zamanı yaranır.
StopIteration Iterasiyanın sonunu bildirmək üçün yaranır.
SyntaxError Kodda sintaksis səhvi zamanı yaranır.
IndentationError Kodda indentasiya səhvi zamanı yaranır (SyntaxError alt tipi).
TabError İndentasiya üçün tabulyasiya və boşluqların qarışdırılması zamanı yaranır (IndentationError alt tipi).
TypeError Uyğunsuz məlumat tipləri ilə əməliyyat etməyə çalışdıqda yaranır.
UnboundLocalError Lokal dəyişənə elan edilməmişdən əvvəl müraciət zamanı yaranır (NameError alt tipi).
ValueError Funksiyaya və ya əməliyyata düzgün olmayan dəyərə malik arqument verildikdə yaranır.
ZeroDivisionError Sıfıra bölmə zamanı yaranır.

Çox güman ki, yeni başlayan biri kimi, öyrənmənin ilk ayında bu səhvlərin hamısı ilə rastlaşacaqsan. Bu normaldır — səhvlərdən öyrənilir.

2.3 Kodda səhvlər

Gəlin kodda səhvlərin baş verdiyi bir neçə vəziyyəti daha nəzərdən keçirək, ki, siz onları öz kodunuzda daha asan tapa biləsiniz:

IndentationError

Bu tip səhv kodda boşluqlar düzgün qurulmadığı zaman yaranır. Məsələn, tabulyasiya və boşluqların qarışdırılması və ya düzgün olmayan boşluqların sayı.


def example():
    print("Salam")
     print("Dünya")  # Səhv boşluq IndentationError səhvinə səbəb olur
        
example()
        

NameError


def example():
    print(undeclared_variable)  # Elan edilməmiş dəyişəni istifadə etmək NameError-a səbəb olur
        
example()
        

ValueError

Bu tip səhv, əməliyyat və ya funksiya düzgün tipdə arqument alıb, amma yanış dəyər verdiyi zaman yaranır.


def example():
    int("abc")  # Rəqəm olmayan bir sətiri çevirməyə çalışmaq ValueError-a səbəb olur
        
example()
        

KeyError

Bu tip səhv proqramın sözlükdə mövcud olmayan bir açara daxil olmağa çalışdığı zaman yaranır.


def example():
    my_dict = {"a": 1, "b": 2}
    print(my_dict["c"])  # Mövcud olmayan açara daxil olmaq KeyError-a səbəb olur
        
example()
        

SyntaxError

Bu tip səhv kodda sintaksis səhvi olduğu zaman yaranır, yəni kod Python dilinin qrammatikasına uyğun gəlmir.


def example():
    eval("if True print('Salam')")  # Düzgün olmayan sintaksis SyntaxError-a səbəb olur
        
example()
        

Kim xəbərdar edilibsə, o hazırdır. İndi siz səhvə səbəb olan vəziyyətləri tanıya və yarada bilirsiniz. İndi isə bu səhvləri necə həll edəcəyimizi öyrənmək vaxtıdır.

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION