Čo je to chyba?
Ak v programovacích jazykoch vykonáme nejaký kód neplatným spôsobom, vykonávanie programu sa zastaví so správou a táto správa sa nazýva chyba alebo výnimka. V programovacom jazyku existujú určité typy chýb z rôznych dôvodov. Niektoré z nich sú nasledovné:
AssertionError:
Tento typ chyby sa vyskytuje, keď v kóde zlyhajú podmienky tvrdenia alebo príkazy.
ImportError:
Táto chyba sa vyskytuje, keď importujeme nejaký modul do súboru a tento modul neexistuje.
IndexError:
Vyskytuje sa vtedy, keď je index ktorejkoľvek sekvencie mimo rozsahu.
ako zreťaziť reťazce v jave
KeyError:
Táto chyba sa objaví v Pythone, keď nemôžeme nájsť žiadny kľúč v slovníku.
NameError:
Táto chyba sa môže vyskytnúť, keď nenájdeme žiadnu premennú v lokálnom alebo globálnom rozsahu.
RuntimeError:
Táto chyba sa zobrazí, keď chybu nemožno kategorizovať do žiadneho typu.
IndentationError:
Keď v kóde Pythonu použijeme nesprávne odsadenie, dôjde k chybe IndentationError.
Systémová chyba:
Ak dôjde k internej chybe, tlmočník vyvolá SystemError.
UnicodeError:
...v jave
Ak dôjde k chybe kódovania alebo dekódovania súvisiacej s Unicode, zobrazí sa chyba UnicodeError.
ValueError:
Keď vo funkcii odovzdáme správny argument podľa typu údajov, ale hodnota nie je správna, potom sa chyba, ktorá sa vyskytla, nazýva ValueError.
ZeroDivisionError:
Ako vieme, v matematike nemôžeme deliť žiadne číslo nulou, pretože výsledok má tendenciu k nekonečnu. Takže ak sme napísali nejaké vyhlásenie týkajúce sa delenia nulou alebo modulo nulou, potom bude vyvolaná chyba ZeroDivisionError.
EOFE chyba:
Keď použijeme funkciu input() na získanie vstupu zo súboru a dostaneme sa na koniec súboru, potom sa táto chyba zobrazí, čo znamená, že sme dosiahli koniec súboru a teraz nemôžeme prijať žiadne vstup zo súboru.
Tento článok je venovaný hlavne AttributeError.
Čo je AttributeError?
Táto chyba sa vyskytuje v programe, keď dôjde k zlyhaniu kondicionovania v priradení atribútu. Napríklad, ak priradíme celočíselnej premennej nejakú hodnotu a ak sa pokúsime použiť akúkoľvek reťazcovú funkciu z tejto premennej, potom to vyvolá AttributeError.
Dôvod AttributeError v Pythone môžeme pochopiť pomocou nasledujúcich príkladov:
Príklad 1:
Keď aplikujeme funkciu na iný typ údajov, čo nie je možné
a=15 a.append('javatpoint')
Výkon:
Vysvetlenie:
príklad
Vo vyššie uvedenom kóde máme jednu celočíselnú premennú a inicializovali sme ju hodnotou 15. Ak teraz použijeme funkciu append na premennej a, potom nám poskytne AttributeError, ktorá hovorí, že neexistuje žiadny atribút ako append v dátovom type celé číslo.
Príklad2:
Existuje možnosť AttributeError v nesprávnom pravopise atribútu.
string = 'you will learn each coding tutorial from '.fst('Javatpoint') print(string)
Výkon:
Vysvetlenie:
Vo vyššie uvedenom kóde máme atribút reťazca a aplikujeme atribút fst, takže sa objaví chyba AttributeError, že tento atribút pre premennú neexistuje.
Príklad 3:
AttributeError môžeme získať, ak sa pokúsime urobiť nesprávny odkaz na akúkoľvek premennú triedy.
class Javatpoint(): def __init__(self): self.var1 = 'This is for JavatPoint' obj = Javatpoint() print(obj.var1) print(obj.var2)
Výkon:
Vysvetlenie:
Vo vyššie uvedenom kóde máme triedu a existuje premenná s názvom var1. Vytvoríme objekt triedy a omylom odkážeme na nesprávnu premennú var2 tejto triedy, ktorá dokonca neexistuje, takže určite bude AttributeError.
Riešenie na riešenie chyby alebo výnimky:
V Pythone alebo v ľubovoľnom programovacom jazyku môžeme použiť spracovanie výnimiek alebo chýb pomocou príkazov try a Mimo.
Prí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ýkon:
spracovanie výnimiek v jazyku Java
Vysvetlenie:
Vo vyššie uvedenom kóde máme triedu a premennú s názvom var1. V príkaze try sa snažíme odkázať na var1 a var2. Budeme môcť dereferencovať var1 a vytlačíme preň príkaz, ale dostaneme AttributeError pre odkazovanie na var2. Program teda prejde okrem bloku a vytlačíme výpis, ktorý je napísaný len pre chybový stav.