Search

μ˜ˆμ™Έ 처리

μ˜ˆμ™Έ 처리

β€’
μ˜ˆμ™Έ
β€’
μ˜ˆμ™Έ 처리
β€’
μ˜ˆμ™Έ μ’…λ₯˜
β€’
μ˜ˆμ‹œ μ½”λ“œ

μ˜ˆμ™Έ

μ˜ˆμ™Έ(Exception)λŠ” ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 쀑 λ°œμƒν•˜λŠ” 였λ₯˜λ₯Ό 의미
μ˜ˆμ™Έ λ°œμƒ μ‹œ, ν”„λ‘œκ·Έλž¨ 진행 쀑단
μ˜ˆμ™Έ λ°œμƒ κ°€λŠ₯성이 μžˆλŠ” λ¬Έμž₯을 νŒŒμ•…ν•˜μ—¬ λŒ€μ‘ κ°€λŠ₯ μ˜ˆμ™Έ 처리
일반적으둜 ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰λ˜λŠ” λ™μ•ˆ 예기치 μ•Šμ€ 상황이 λ°œμƒν•  λ•Œ λ°œμƒν•˜λ©°, μ΄λŸ¬ν•œ 상황에 λŒ€μ²˜ν•˜κΈ° μœ„ν•΄ μ˜ˆμ™Έ 처리(Exception Handling) κΈ°λŠ₯을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ˜ˆμ™Έ 처리

try: # μ˜ˆμ™Έ λ°œμƒ κ°€λŠ₯ν•œ μ½”λ“œ # μ˜ˆμ™Έκ°€ λ°œμƒν•˜λ©΄ μ—¬κΈ°μ—μ„œ 처리됨 except μ˜ˆμ™Έμ’…λ₯˜ as λ³€μˆ˜: # μ˜ˆμ™Έ 처리 μ½”λ“œ finally: # 항상 μ‹€ν–‰λ˜λŠ” μ½”λ“œ (선택사항)
Python
볡사
try: result = X / Y except ZeroDivisionError: print('0으둜 λ‚˜λˆŒ 수 μ—†μŠ΅λ‹ˆλ‹€.') else: print(result)
Python
볡사

μ˜ˆμ™Έ μ’…λ₯˜

νŒŒμ΄μ¬μ—μ„œλŠ” λ‹€μ–‘ν•œ λ‚΄μž₯ μ˜ˆμ™Έλ“€μ΄ μžˆμŠ΅λ‹ˆλ‹€. 일뢀 μ£Όμš”ν•œ μ˜ˆμ™Έλ“€μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€
μ˜ˆμ™Έ μ’…λ₯˜
μ„€λͺ…
SyntaxError
ꡬ문 였λ₯˜
NameError
μ •μ˜λ˜μ§€ μ•Šμ€ λ³€μˆ˜λ‚˜ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•  λ•Œ λ°œμƒ
TypeError
잘λͺ»λœ μžλ£Œν˜•μ„ μ‚¬μš©ν–ˆμ„ λ•Œ λ°œμƒ
ValueError
잘λͺ»λœ 값을 μ‚¬μš©ν–ˆμ„ λ•Œ λ°œμƒ
ZeroDivisionError
0으둜 λ‚˜λˆ„κΈ° μ‹œλ„ν•  λ•Œ λ°œμƒ

μ˜ˆμ‹œ μ½”λ“œ

β€’
μ˜ˆμ™Έκ°€ μ—¬λŸ¬ 개 일 λ•Œ
β—¦
λ”°λ‘œ μ²˜λ¦¬ν•˜λŠ” 방법
β—¦
λ¬Άμ–΄μ„œ μ²˜λ¦¬ν•˜λŠ” 방법
β€’
μ˜ˆμ™Έ 정보
β€’
finally

μ˜ˆμ™Έκ°€ μ—¬λŸ¬ 개 일 λ•Œ

β€’
λ”°λ‘œ μ²˜λ¦¬ν•˜λŠ” 방법
β€’
λ¬Άμ–΄μ„œ μ²˜λ¦¬ν•˜λŠ” 방법

λ”°λ‘œ μ²˜λ¦¬ν•˜λŠ” 방법

print('X / Y') try: X = int( input('X : ') ) Y = int( input('Y : ') ) result = X / Y except ZeroDivisionError: print('0으둜 λ‚˜λˆŒ 수 μ—†μŠ΅λ‹ˆλ‹€') except ValueError: print('숫자만 μž…λ ₯ κ°€λŠ₯ν•©λ‹ˆλ‹€') except: print('μ•Œ 수 μ—†λŠ” μ˜ˆμ™Έκ°€ λ°œμƒν•˜μ˜€μŠ΅λ‹ˆλ‹€') else: print(result)
Python
볡사

λ¬Άμ–΄μ„œ μ²˜λ¦¬ν•˜λŠ” 방법

print('X / Y') try: X = int( input('X : ') ) Y = int( input('Y : ') ) result = X / Y except (ZeroDivisionError, ValueError): print('문자λ₯Ό μž…λ ₯ν•˜κ±°λ‚˜ 0으둜 λ‚˜λˆŒ 수 μ—†μŠ΅λ‹ˆλ‹€') except: print('μ•Œ 수 μ—†λŠ” μ˜ˆμ™Έκ°€ λ°œμƒν•˜μ˜€μŠ΅λ‹ˆλ‹€') else: print(result)
Python
볡사

μ˜ˆμ™Έ 정보

except μ˜ˆμ™Έ 클래슀 as λ³€μˆ˜λͺ… ex) except XXXError as err: # err.args : μ˜ˆμ™Έ 정보λ₯Ό 가진 λ³€μˆ˜ # - args[0] : μ—λŸ¬λ²ˆν˜Έ # - args[1] : μ—λŸ¬ λ©”μ‹œμ§€ # err : __str__ λ©”μ†Œλ“œμ— μ˜ν•΄ μ˜ˆμ™Έμ •λ³΄κ°€ 좜λ ₯됨
try: file = open('μ‘΄μž¬ν•˜μ§€μ•ŠλŠ”νŒŒμΌ.txt') line = file.readline() print(line) except OSError as err: print('μ˜ˆμ™Έ 정보 : ', err.args) print('μ˜ˆμ™Έ 정보 : ', err) except: print('μ•Œ 수 μ—†λŠ” μ˜ˆμ™Έ λ°œμƒ...') else: print('μ •μƒμ μœΌλ‘œ νŒŒμΌμ„ μ½μ–΄μ™”μŠ΅λ‹ˆλ‹€.')
Python
볡사

finally

μ˜ˆμ™Έ μ²˜λ¦¬λ¬Έμ—μ„œ μ˜ˆμ™Έ λ°œμƒ 여뢀와 관련없이 μ‹€ν–‰λ˜λŠ” 블둝 주둜, μžμ› ν•΄μ œλ₯Ό ν•˜λŠ” 싀행문을 μž‘μ„±ν•œλ‹€
try: file = open('nofile.txt', 'r') line = file.readline() except IOError: print('파일 μž…μΆœλ ₯ μ‹œ, μ˜ˆμ™Έκ°€ λ°œμƒν•˜μ˜€μŠ΅λ‹ˆλ‹€') else: print(line) file.close() # 파일 λ©”λͺ¨λ¦¬ μžμ› ν•΄μ œ finally: print('μ˜ˆμ™Έ λ°œμƒκ³Ό λ¬΄κ΄€ν•˜κ²Œ μ‹€ν–‰')
Python
볡사