Co je to chyba?
Pokud v programovacích jazycích provedeme nějaký kód neplatným způsobem, provádění programu se zastaví se zprávou a tato zpráva se nazývá chyba nebo výjimka. V programovacím jazyce existují určité typy chyb z různých důvodů. Některé z nich jsou následující:
AssertionError:
K tomuto typu chyby dochází, když podmínky tvrzení nebo příkazy v kódu selžou.
pořadí náhodně v sql
ImportError:
K této chybě dochází, když importujeme nějaký modul do souboru a tento modul neexistuje.
IndexError:
Vyskytuje se, když je u jakékoli sekvence její index mimo rozsah.
KeyError:
Tato chyba je vyvolána v Pythonu, když nemůžeme najít žádný klíč ve slovníku.
NameError:
K této chybě může dojít, když nenajdeme žádnou proměnnou v lokálním nebo globálním rozsahu.
RuntimeError:
Tato chyba bude vyvolána, pokud chybu nelze kategorizovat do žádného typu.
IndentationError:
Když v kódu Pythonu použijeme špatné odsazení, dojde k IndentationError.
Chyba systému:
Pokud dojde k vnitřní chybě, překladač vyvolá SystemError.
UnicodeError:
Pokud dojde k chybě kódování nebo dekódování související s Unicode, zobrazí se chyba UnicodeError.
ValueError:
Když jsme ve funkci, předáme správný argument podle datového typu, ale hodnota není správná, pak se chyba, ke které došlo, nazývá ValueError.
ZeroDivisionError:
Jak víme, v matematice nemůžeme dělit žádné číslo nulou, protože výsledek má tendenci k nekonečnu. Pokud jsme tedy napsali nějaké prohlášení týkající se dělení nulou nebo modulo nulou, pak bude vyvolaná chyba ZeroDivisionError.
EOFE chyba:
Když použijeme funkci input() k získání vstupu ze souboru a dostaneme se na konec souboru, pak se tato chyba zobrazí, aby indikovala, že jsme dosáhli konce souboru, a nyní nemůžeme vzít žádný vstup ze souboru.
Tento článek je věnován hlavně AttributeError.
Co je AttributeError?
K této chybě dochází v programu, když dojde k selhání kondicionování v přiřazení atributu. Pokud například přiřadíme celočíselné proměnné nějakou hodnotu a pokusíme-li se použít jakoukoli řetězcovou funkci z této proměnné, vyvolá to AttributeError.
Důvod AttributeError v Pythonu můžeme pochopit na následujících příkladech:
char + int v jazyce Java
Příklad 1:
Když aplikujeme funkci na jiný datový typ, což není možné
a=15 a.append('javatpoint')
Výstup:
Vysvětlení:
Ve výše uvedeném kódu máme jednu celočíselnou proměnnou a inicializovali jsme ji hodnotou 15. Nyní, pokud použijeme funkci append na proměnnou a, poskytne AttributeError, která říká, že neexistuje žádný atribut jako append v datovém typu integer.
Příklad2:
Při nesprávném pravopisu atributu existuje možnost AttributeError.
string = 'you will learn each coding tutorial from '.fst('Javatpoint') print(string)
Výstup:
Vysvětlení:
Ve výše uvedeném kódu máme atribut string a aplikujeme atribut fst, takže bude AttributeError, že tento atribut pro proměnnou neexistuje.
Příklad 3:
AttributeError můžeme získat, pokud se pokusíme vytvořit špatný odkaz na jakoukoli proměnnou třídy.
class Javatpoint(): def __init__(self): self.var1 = 'This is for JavatPoint' obj = Javatpoint() print(obj.var1) print(obj.var2)
Výstup:
středové tlačítko css
Vysvětlení:
Ve výše uvedeném kódu máme třídu a existuje proměnná s názvem var1. Vytvoříme objekt třídy a omylem odkážeme na špatnou proměnnou var2 této třídy, která dokonce neexistuje, takže tam určitě bude AttributeError.
Řešení pro řešení chyby nebo výjimky:
V Pythonu nebo v libovolném programovacím jazyce můžeme použít zpracování výjimek nebo chyb pomocí příkazů try a výjimkou.
Příklad 4:
class Javatpoint(): def __init__(self): self.var1 = 'This is for javatpoint' obj = Javatpoint() try: print(obj.var1) print(obj.var2) except AttributeError: print('There is no such attribute')
Výstup:
Vysvětlení:
Ve výše uvedeném kódu máme třídu a proměnnou s názvem var1. V příkazu try se snažíme odkazovat na var1 a var2. Budeme moci dereferencovat var1 a vytiskneme pro něj příkaz, ale pro odkazování na var2 získáme AttributeError. Program tedy přejde do kromě bloku a vytiskneme příkaz, který je zapsán pouze pro chybový stav.