일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Mybatis#조건
- JAVA #JDK #1.8 #JAVA 환경변수 # CLASS_PATH #시스템 변수 # 사용자 변수
- 파이썬 모듈
- MySQL설치 # DB # 초보자 #Oracle친구
- 정보통신용어 #Proxy #Proxy Server
- 오라클 환경 변수
- 향상된 for문
- window10
- Library
- maVen
- 파이썬 패키지
- Java #객체 #클래스 #인스턴스
- Spring Core
- 오라클 #Oracle #DB #database #12C
- 정보통신용어 #Agent #
- SpringFramework
- Spring Context
- Java
- 웅스주니어개발자 #MySQL # Window10 # CMD # 초보자 #환경변수
- 파이썬 예외처리
- 추상화란? # 결론은 객체들의 공통적인 개념
- 따라해보세요
- Today
- Total
IT흔적
[파이썬] 4.예외처리 - try, except문 본문
예외처리 - 오류 발생시 예외적으로 오류를 처리할 때 try, execpt 이용
'''
오류파일 만들기
chams = [1, 2, 3, 4]
print(chams[4])
Traceback (most recent call last):
File "D:/SunWoong/python/mod.py", line 2, in <module>
print(chams[4])
IndexError: list index out of range # 인덱스 오류 발생
'''
# 오류값 나오게 하기try:
chams = [1, 2, 3, 4]
print(chams[4])
except IndexError as a: # try :
print(a) # except 발생오류 as 오류 메시지 변수: print(변수)
# 결과값: list index out of range
try.. else - else절은 예외가 발생하지 않은 경우에 실행
try:
f = open('woong.txt','r')
except FileNotFoundError as s:
print(s)
else:
data = f.read()
f.close()
# woong.txt 파일이 없으면 except문이 실행
# 출력값: ([Errno 2] No such file or directory: 'woong.txt')
try ~ finally - finally절은 try문 수행 도중 예외 발생 여부에 상관없이 항상 수행된다. 보통 finally절은 사용한 리소스를 close해야 할 경우에 많이 사용
try:
4/0
finally:
print("선웅")
# 출력값 :
Traceback (most recent call last): File "D:/SunWoong/python/mod.py", line 2, in <module> 4/0 ZeroDivisionError: division by zero 선웅
상관없이 값이 나온다.
3. 여러개의 오류 처리하기 # try문 내에서 여래개의 오류를 처리하기 위해서는 다음과 같은 구문을 이용한다.
try:
~
except 발생 오류1:
~
except 발생 오류2:
~
try:
chams = [1, 2, 3, 4]
print(chams[4])
3/0
except IndexError:
print("챔스 진출 못함")
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
# 출력값: 챔스 진출 못함. 첫번재 오류만 가져와준다 만약 첫번재 코드 조건이 맞으면
try:
chams = [1, 2, 3, 4]
print(chams[2])
3/0
except IndexError:
print("챔스 진출 못함.")
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
# 출력값: 3
0으로 나눌 수 없습니다.
(2) 오류 메시지 가져오기
try:
chams = [1, 2, 3, 4]
print(chams[4])
3/0
except IndexError as a:
print(a)
except ZeroDivisionError as a:
print(a)
# 출력값: list index out of range
(3) 두개를 한꺼번에 묶어서
try:
chams = [1, 2, 3, 4]
print(chams[4])
3/0
except (IndexError, ZeroDivisionError) as a:
print(a)
오류 회피하기 – 특정 오류가 발생할 경우 그냥 통과시켜야 할 때 이용
try:
chams = [1, 2, 3, 4]
print(chams[4])
except IndexError:
pass
# 오류 값을 무시한다.
오류 일부러 발생시키기 - raise, NotlmplementedError 사용
class EPL:
def team(self):
raise NotImplementedError # raise는 오류를 강제로 발생, NotImplementedError 파이썬 내장 오류
class real(EPL):
pass
key = real()
key.team()
# 출력값:
Traceback (most recent call last):
File "D:/SunWoong/python/mod.py", line 9, in <module>
key.team()
File "D:/SunWoong/python/mod.py", line 3, in team
raise NotImplementedError # raise는 오류를 강제로 발생, NotImplementedError 파이썬 내장 오류
NotImplementedError
'DO it! Python > 05.파이썬 날개 달기' 카테고리의 다른 글
[파이썬] 1.클래스의 개념, 생성, 활용 (0) | 2019.01.19 |
---|---|
[파이썬]3.패키지 - 생성, __init__.py, __all__, relative (0) | 2018.12.27 |
[파이썬]2.모듈 (0) | 2018.12.23 |