• Członkowie 4 posty
    4 października 2024 17:15

    Cześć!

    Korzystam z zapisu try/except:

    try:
       # Kod który może sypnąć błędem
    except FirstException:
       handle_first_one()
    
    except SecondException:
       handle_second_one()
    
    except (ThirdException, FourthException, FifthException) as e:
       handle_either_of_3rd_4th_or_5th()
    
    except Exception:
       handle_all_other_exceptions()
    

    Za try mam kilka linii kodu i więcej niż jedna może sypnąć błędem, czy to jest dobre rozwiązanie? Czy lepiej robić wiele bloków try / except jeden po drugim?
    Jak podchodzicie do tematu?

    Drugi sposób poniżej:

    try:
      # Pierwsza funkcja
    except Error1:
      handle_error1()
    
    try:
      # Druga funkcja
    except Error2:
      handle_error2()
    
    try:
      # Trzecia funkcja
    except Error3:
      handle_error1()
    
  • 9 października 2024 22:05

    Ja wolę pierwsze podejście jeśli kodu jest mało i drugie kiedy jest dużo.

  • 16 października 2024 10:35

    Ja podobnie jak @rafalp,ale jeśli dokładnie wiem jakich błędów mogę się spodziewać i np. mam 3 linie (wywołania jakiś metod/funkcji) w try a 2 z nich mogą sypnąć tym samym błędem, to czasem wybieram podejście 2 mimo małej ilości kodu, bo wtedy wiem dokładnie, który fragment kodu powoduje błąd, ale też można to lepiej obsłużyć jeśli jest taka potrzeba/możliwość.