예외처리
try : 에러 발생 가능성이 있는 코드 실행
에러가 발생하면 그 지점 이후의 코드들은 실행되지 않음
except : 에러 발생 시 (생략 가능, 여러개 사용 가능, 에러 처리하려면 필수)
else : 에러가 발생하지 않았을 경우 실행 (생략 가능, except 있어야 사용 가능)
finally : 에러가 발생해도, 발생하지 않아도 무조건 실행 (생략 가능)
raise : 사용자가 직접 에러를 발생시키는 기능
< try-except >
try:
...
except [발생오류 [as 오류 메시지 변수]]:
...
try 블록 수행 중 오류가 발생하면 except 블록 수행.
하지만 try 블록에서 오류가 발생하지 않는다면 except 블록은 수행되지 않음.
💡 except [발생오류 [as 오류 메시지 변수]]:
# 여기서 []는 괄호 안의 내용을 생략할 수 있다는 뜻.
📍 생략여부에 따라 방법은 크게 3가지로 구분
# 1. try-except만 쓰는 방법
try:
...
except:
...
@ 종류에 상관없이 오류가 발생하면 except 블록을 수행.
# 2. 발생 오류만 포함한 except 문
try:
...
except 발생오류:
...
@ except 문에 미리 정해둔 오류와 동일한 오류일 경우에만 except 블록을 수행.
# 3. 발생 오류와 오류 변수까지 포함한 except 문
try:
...
except 발생오류 as 오류 메시지 변수:
...
@ case2 + 오류의 내용까지 알고 싶을 때 사용하는 방법.
☆
<예시> case_1
# try-except 만 쓰는 방법
try:
# 오류가 발생할 수 있는 코드
result = 10 / 0
except:
print("오류가 발생했습니다.")
# 결과: 오류가 발생했습니다.
☆
<예시> case_2
# 발생 오류만 포함한 except문
try:
# 오류가 발생할 수 있는 코드
result = 10 / 0
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
# 결과: 0으로 나눌 수 없습니다.
☆
<예시> case_3
# 발생 오류와 오류 변수까지 포함한 except 문
try:
# 오류가 발생할 수 있는 코드
result = 10 / 0
except ZeroDivisionError as e:
print("에러 발생:", e)
# 결과: 에러 발생: division by zero
< try-finally >
#finally
try문 수행 중 예외 발생 여부에 상관없이 항상 수행됨.
보통 사용한 리소스(파일 등)를 close해야 할 때 많이 사용.
# try_finally.py
try:
f = open('foo.txt', 'w')
# 무언가를 수행.
(... 생략 ...)
finally:
f.close() # 중간에 오류가 발생하더라도 무조건 실행됨.
< try-else >
# try-else 구조
try:
...
except [발생오류 [as 오류변수]]:
...
else: # 오류가 없을 경우에만 수행
...
try 문 수행 중 오류가 발생하면 except 절, 오류가 발생하지 않으면 else 절이 수행됨.
< raise >
# raise
프로그래밍을 하다 보면 종종 오류를 일부러 발생시켜야 할 경우가 생기는데,
파이썬은 raise 명령어를 사용해 오류를 강제로 발생시킬 수 있음.
@ 사용자 정의 예외처리
'Pworkspace' 카테고리의 다른 글
week3 - split, map , sep, end (0) | 2024.04.05 |
---|---|
week3 - format (0) | 2024.04.05 |
week2 - zip (0) | 2024.04.03 |
week2 - List Comprehension (0) | 2024.04.03 |
week5 - Function2 (0) | 2024.04.03 |