Interpretovať Traceback:
Prezeranie niektorých spätných väzieb môže poskytnúť lepšiu interpretáciu znalostí, ktoré poskytujú, aby vám z toho niečo pomohlo. Poďme sa pozrieť na interpretáciu toho, ako môže byť základnou výnimkou spätné sledovanie. Tu je príklad jednoduchého kódu generujúceho chybu spätného sledovania pri vykonávaní Spydera (Python 3).
Nižšie je uvedený obrázok spätného sledovania chýb. Prvý riadok zobrazuje umiestnenie súboru. Tu je niekoľko špecifikácií pre všetky riadky používajúce farby.
Biely: Traceback (posledný hovor ako posledný) je príkaz spätného sledovania. Na druhej strane, biela časť posledného riadku zobrazuje súvisiace informácie o chybe.
Zelená: Vyslovenie názvu súboru a umiestnenia obsahuje chybu.
Modrá: Zobrazuje číslo riadku súboru, v ktorom došlo k chybe.
Žltá: Zobrazí skutočný riadok, na ktorom sa vyskytla výnimka.
Červená: Typ chyby.
Tu je niekoľko dôležitých chýb v spätnom sledovaní:
NameError
IndexError
KeyError
TypeError
valueError
ImportError / ModuleNotFound
Chyba názvu:
Kedykoľvek chcete interpretovať premennú, ktorá nebola uvedená v kóde, objaví sa NameError. Tu je jednoduchý príklad spätného sledovania NameError. Máme premennú 'number' definované s určitou hodnotou, zatiaľ čo v tlačiť výpis, máme vytlačené „znecitlivený“, ktorý nie je nikde v kóde definovaný. Spustíme tento kód a skontrolujeme, čo sa stane.
Môžete vidieť, že došlo k spätnému sledovaniu NameError, pretože sme nedefinovali premennú 'numb', tak ako ju možno vytlačiť. Preto tento program zobrazuje NameError a na poslednom riadku s bielym a červeným textom ich spracuje s ďalšími informáciami. Žltý text zobrazuje presný kód, kde sa chyba vyskytla.
Chyba indexu:
IndexError sa vytvorí, keď je v kóde definovaná séria, ktorá je mimo dosahu. Definovali sme a zoznam menovaný 'Nový' majúce 5 indexov s niektorými hodnotami v ňom. Potom musíme uviesť príkaz print, aby sa hodnota zobrazila na index číslo 9.
Keď tento kód vykonáme, vygeneruje index definujúci IndexError mimo rozsahu. Pretože sme definovali zoznam 5 indexov, preto vytlačené číslo indexu, ktoré je 9, nemá prístup, pretože nie je v našom rozsahu.
Chyba kľúča:
Pri pokuse o dosiahnutie kódu Python generuje kľúčovú chybu kľúč ktorý je nie je definované alebo zmapované, najmä z a slovník. Je to skôr ako IndexError. Poďme sa teda pozrieť na jednoduchý príklad pomenovaného slovníka „náhodný“ s dvoma kľúčmi v ňom definovanými a niektorými hodnotami priradeným týmto kľúčom. Na ďalší riadok sme vytlačili pomenovaný kľúč „A“ v tlačovom výkaze.
Oh! Máme spätnú spätnú väzbu KeyError. Je to spôsobené nesprávnym kľúčom poskytnutým vo vyhlásení o tlači, ktorý nie je definovaný v slovníku. Niekto môže urobiť chybu tým, že zadá kláves s veľkým písmenom, zatiaľ čo slovník má v sebe definovaný kláves s malými písmenami.
Chyba typu:
TypeError je definovaná ako výnimka, ktorá nastane, keď bola nejaká operácia alebo metóda rozmazaná nevhodný typ entity alebo premennej. Máme príklad jednoduchej premennej, ktorá berie dve hodnoty, zatiaľ čo tento reťazec pridáva obe hodnoty. Prvá hodnota je typ reťazca a druhá je celočíselný typ. Tlačový výpis tlačí výsledok pridania.
Keď sa tento kód vykoná, vyvolá to výnimku. Táto výnimka sa týka nesprávneho typu spájaného objektu. Vypracúva sa, že nemôžete pridať premennú typu reťazca s premennou typu celé číslo.
Chyba hodnoty:
Hodnota chyby je definovaná ako výnimka, ku ktorej dôjde iba v prípade, že k nej dôjde zabudovaná metóda berie argument správneho typu ale nesprávna hodnota v tom. Pozrime sa na malý príklad. Berieme vstavanú metódu int () s určitou hodnotou reťazca v tlačovom vyhlásení.
Keď spustíte tento jednoriadkový kód, vygeneruje ValueError, pretože používame funkciu celočíselného typu a dávame jej hodnotu reťazca, ktorá sa má vykonať. Preto sa ukáže, že funkcia int () má v sebe neplatnú hodnotu.
Na druhej strane, ak mu dáte zlomkovú hodnotu, prevedie ju na celočíselnú hodnotu.
Tento kód má výstup 11, pretože zaberá iba celočíselnú časť, zatiaľ čo desatinná časť je úplne ignorovaná.
Chyba importu / Modul nebol nájdený:
Niekedy musíte dovoz nejaké balíčky príp modulov vo svojom pythonovom kóde používať cez ne špeciálne funkcie. Spätné sledovanie ImportError nájdete, keď sa jedná o chybný údaj o príkaze Import v kóde. K tejto chybe spätného sledovania dochádza, keď ste neschopný do Nájsť konkrétny modul alebo niečo z balíka. Tu sme importovali dva moduly, 'pip' a „java“, v našom kóde.
Počas vykonávania tohto kódu poskytne ModuleNotFoundError spätné sledovanie. Je to tak preto, lebo importovaný modul „java“ nie je knižnicou python podporovaný. Na druhej strane však nedáva výnimku pri importe modulu „pip“, pretože ide o modul podporovaný Pythonom.
Záver:
Spätné sledovanie Pythonu poskytuje vynikajúce znalosti, ktoré vám pomôžu zistiť, čo sa v kóde deje nesprávne. Či už to robíte prvýkrát alebo len nerozumiete tomu, čo robí, generovanie spätného sledovania môže byť trochu skľučujúce. Aby ste sa stali silnejším programátorom Pythonu, je dôležité naučiť sa, aké podrobnosti poskytuje spätné sledovanie Pythonu.