반응형
파이썬(python) 예외처리(try except)
try except문
프로그래밍 작동 시 오류를 처리하기 위한 방법
try, except만 사용
try:
<수행문>
except:
<오류가 발생했을 때 수행문>
동일 오류만 cxcept
<발생오류>와 동일한 오류가 발생했을 경우에만 except를 수행한다.
try:
<수행문>
except <발생오류>:
<오류가 발생했을 때 수행문>
오류와 오류 변수까지 포함한 except
<발생오류>에 대한 오류메시지를 <오류변수>에 담아서 오류메시지를 출력할 때 사용한다.
try:
<수행문>
except <발생오류> as <오류변수>:
<오류가 발생했을 때 수행문>
# 예시
try:
5 / 0
except ZeroDivisionError as e:
print('숫자를 0으로 나눌 수 없습니다.', e)
try ... finally 사용
finally절은 try문 수행 도중 오류가 발생 여부와 상관없이 항상 수행
try:
f = open('foo.txt', 'w')
# 무언가를 수행한다.
(... 생략 ...)
finally:
f.close() # 중간에 오류가 발생하더라도 무조건 실행된다.
try … else 사용
try문 수행중에 오류가 발생하면 except를 수행하고 오류가 없으면 else를 수행한다.
try:
...
except [발생오류 [as 오류변수]]:
...
else: # 오류가 없을 경우에만 수행된다.
...
try:
age=int(input('나이를 입력하세요: '))
except:
print('입력이 정확하지 않습니다.')
else:
if age <= 18:
print('미성년자는 출입금지입니다.')
else:
print('환영합니다.')
오류 통과시키기
오류가 발생했을 경우 except를 통과시키도록 함
try:
f = open("없는 파일", 'r')
except FileNotFoundError:
pass
예외 만들기
파이썬 내장 클래스 Exception을 상속하여 예외 처리하기
#__str__ 메서드를 통한 오류메시지 출력
class MyError(Exception):
def __str__(self):
return "허용되지 않는 별명입니다."
# nick이 바보이면 raise를 통한 에러 발생시키기
def say_nick(nick):
if nick == '바보':
raise MyError()
print(nick)
try:
say_nick("천사")
say_nick("바보")
except MyError:
print("허용되지 않는 별명입니다.")
# 출력
천사
허용되지 않는 별명입니다.
반응형
'프로그래밍_기타 언어' 카테고리의 다른 글
파이썬(python) 모듈 사용 (0) | 2024.09.22 |
---|---|
파이썬(python) 파일 읽고 쓰기 (0) | 2024.09.22 |
뉴스 스크래핑 파이썬 코드 (2) | 2024.09.22 |
jquery 에서 사용하는 속성 메서드 정리 (1) | 2024.09.22 |
jquery 메서드 종류 및 기본 설명 (5) | 2024.09.22 |