πŸžν”„λ‘œκ·Έλž˜λ°

[정보] 파이썬 μ˜ˆμ™Έμ²˜λ¦¬ μ—¬λŸ¬κ°œ ν•˜κΈ°

TwoIceFish 2023. 2. 17. 14:58

νŒŒμ΄μ¬μ—μ„œλŠ” try-catch 문을 μ‚¬μš©ν•˜μ—¬ μ˜ˆμ™Έ 처리λ₯Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ€ try-catch 문을 μ‚¬μš©ν•˜μ—¬ μ—¬λŸ¬λ²ˆ μ˜ˆμ™Έλ₯Ό μ²˜λ¦¬ν•˜λŠ” μ½”λ“œμž…λ‹ˆλ‹€.

try:
    # μ˜ˆμ™Έ λ°œμƒ κ°€λŠ₯ν•œ μ½”λ“œ
    result = some_function()

except ValueError:
    # ValueError μ˜ˆμ™Έ 처리
    print("ValueError occurred")

except IndexError:
    # IndexError μ˜ˆμ™Έ 처리
    print("IndexError occurred")

except Exception as e:
    # κ·Έ μ™Έ λͺ¨λ“  μ˜ˆμ™Έ 처리
    print("An error occurred:", e)

finally:
    # μ˜ˆμ™Έ λ°œμƒ 여뢀에 상관없이 μ‹€ν–‰λ˜λŠ” μ½”λ“œ
    print("Execution complete")

 

μœ„ μ½”λ“œμ—μ„œλŠ” try 블둝 μ•ˆμ—μ„œ some_function() ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜κ³ , 이 ν•¨μˆ˜μ—μ„œ λ°œμƒν•  수 μžˆλŠ” μ—¬λŸ¬ 가지 μ˜ˆμ™Έλ“€μ„ μ²˜λ¦¬ν•©λ‹ˆλ‹€. λ§Œμ•½ some_function() ν•¨μˆ˜κ°€ ValueError μ˜ˆμ™Έλ₯Ό λ°œμƒμ‹œν‚€λ©΄ except ValueError 블둝이 μ‹€ν–‰λ˜κ³ , IndexError μ˜ˆμ™Έκ°€ λ°œμƒν•˜λ©΄ except IndexError 블둝이 μ‹€ν–‰λ©λ‹ˆλ‹€. κ·Έ μ™Έ λͺ¨λ“  μ˜ˆμ™Έλ“€μ€ except Exception λΈ”λ‘μ—μ„œ 처리되며, finally 블둝은 μ˜ˆμ™Έ λ°œμƒ 여뢀와 상관없이 항상 μ‹€ν–‰λ©λ‹ˆλ‹€.

이와 같은 λ°©μ‹μœΌλ‘œ μ—¬λŸ¬ μ˜ˆμ™Έλ₯Ό μ²˜λ¦¬ν•˜λŠ” 것이 κ°€λŠ₯ν•©λ‹ˆλ‹€. 단, μ˜ˆμ™Έ μ²˜λ¦¬λŠ” λ„ˆλ¬΄ 많이 ν•˜λŠ” κ²ƒλ³΄λ‹€λŠ” μ μ ˆν•œ μˆ˜μ€€μœΌλ‘œ ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. λΆˆν•„μš”ν•œ μ˜ˆμ™Έ μ²˜λ¦¬λŠ” μ½”λ“œμ˜ 가독성을 λ–¨μ–΄λœ¨λ¦΄ 뿐만 μ•„λ‹ˆλΌ, μ˜ˆμ™Έ μ²˜λ¦¬κ°€ λ„ˆλ¬΄ 많이 λ˜μ–΄μžˆμ„ 경우 ν”„λ‘œκ·Έλž¨μ΄ 더 느렀질 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.