Új hozzászólás Aktív témák

  • cousin333

    addikt

    válasz Hege1234 #3495 üzenetére

    Az univerzális megoldás valóban a try-except (lásd 8.3 fejezet). Lényegében a kritikus részt a try blokkba írod, és ha lefut, örülsz. Ha hiba van, akkor az except ág(ak) fut(nak) le. Ily módon szelektíven lehet kezelni a problémát: ha pl. a fájl nem található (lásd FileNotFoundError) akkor vállat vonsz és továbblépsz a következő fájlra, ha viszont más a hiba, akkor lehet, hogy ez nem elegendő megoldás, de jó, ha tudsz a problémáról.

    A fenti példában (is) lehet célirányosabb megoldást is találni, például megvizsgálni a vtt értékét, mielőtt dolgozni kezdesz vele, hiszen a findall egyik lehetséges hibája, hogy éppenséggel nem talál semmit:

    vtt = re.findall("[a-zA]...')
    if vtt is not None:
        vtt = vtt[0].strip()
        ...

    A fenti esetben feltételezhető, hogy None értéket kap. De az is vizsgálható, hogy lista-e, és/vagy van-e annyi eleme, amennyi neked kell. Szívás, de a kód egy jelentős része mindig arra megy el, hogy ezeket a hibákat felderítsd és megnyugtatóan lekezeld.

Új hozzászólás Aktív témák