meong_j
기록하는 습관.
meong_j
전체 방문자
오늘
어제
  • 분류 전체보기 (176)
    • 개인 공부 정리 (0)
    • 서버 운영 (37)
      • Linux (36)
    • Frontend (11)
      • Vue.js (10)
    • Backend (70)
      • Java (4)
      • Python (22)
      • Django (38)
      • Spring (6)
    • Database (5)
      • Oracle (4)
      • MySQL (1)
      • MariaDB (0)
    • Android (14)
      • Kotlin (6)
    • 배포 (9)
      • Docker (8)
      • AWS (1)
    • IT_study (29)
      • Coding test (17)
      • 알고리즘 (5)
      • 스터디 (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • github

인기 글

반응형

태그

  • 리눅스방화벽
  • router-link
  • 이차원배열정렬
  • django
  • Proxy
  • 리눅스인증
  • 테크커리어
  • 배포인프라
  • dockersecret
  • docker
  • dp #알고리즘
  • 개발자도서
  • gabagecollecter
  • DHCP
  • 안드로이드adaptor
  • SASS Variables
  • cpu사용률
  • 중첩라우트
  • Kotlin
  • 코틀린자료형

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.
meong_j

기록하는 습관.

파이썬 - 예외 처리(exception)
Backend/Python

파이썬 - 예외 처리(exception)

2021. 9. 16. 19:55
728x90
반응형
 파이썬 예외처리의 이해

 

 

[예외 종류]

- SyntaxError, TypeError, NameError, IndexError, ValueError, KeyError ...
- 문법적으로는 예외는없지만, 코드 실행 프로세스(단계)발생하는 예외도 중요
1. 예외는 반드시 처리
2. 로그는 반드시 남긴다
3. 예외는 던져진다
4. 예외 무시

 

 

# SystaxError : 문법오류
# print('error)
# print('error'))

#NameError : 참조 없음
# a = 10
# b = 15
# print(c)

#ZeroDivisionError

# print(100 / 0)

#IndexError

x = [50,70,90]
# print(x[1])
# print(x[4])
# print(x.pop())
# print(x.pop())
# print(x.pop())
# print(x.pop())

#KeyError
#
# dic = {'name', 'Lee', 'Age': 41, 'City':'Busan'}
# print(dic.get('hobby'))

# 예외 없는 것을 가정하고 프로그램 작성 -> 런타임 예외 발생 시 예외 처리 권장(EAFP)

# AttributeError : 모듈, 클래스에 있는 잘못된 속성 사용 예와
import time
# print(time.time2())

# ValueError

# x = [10,50,90]
# x.remove(50)
# print(x)
# x.remove(200)

# FileNotFoundError

# f = open('test.txt')


#TypeError : 자료형에 맞지 않는 연산을 수행 할 경우
x = [1,2]
y = (1,2)
z = 'test'

# print(x + y)
# print(x + z)
# print(y + z)

# print(x + list(y)) #형변환해서 연산

 

 

 

예외 처리 기본

 

 

try : 예외가 발생 할 가능성 있는 코드 실행
 except 에러명1 : 여러개 가능
 except 에러명2 :
 else : try 블록의 에러가 없을 경우 실행
 finally : 항상 실행

 

 

name = ['Kim', 'Lee', 'Park']

#예제1
try:
    z = 'Jung'
    x = name.index(z)
    print('Found it! {} in name'.format(z, x + 1))
except ValueError:
    print('Not found it! - Occurred ValueError')
else:
    print('OK! else.')

print()

 

 

# 예제2
try:
    z = 'Cho'
    x = name.index(z)
    print('Found it! {} in name'.format(z, x + 1))
except Exception:
    print('Not found it! - Occurred ValueError')
else:
    print('OK! else.')

 

 

 

# 예제3
try:
    z = 'Cho'
    x = name.index(z)
    print('Found it! {} in name'.format(z, x + 1))
except Exception as e:
    print(e) # 정확히 어떤 에러 종류인지 출력
    print('Not found it! - Occurred ValueError')
else:
    print('OK! else.')
finally:
    print('OK! finally!!')

 

 

 

 

반응형

'Backend > Python' 카테고리의 다른 글

파이썬 - 외장 함수(External Functions)  (0) 2021.09.16
파이썬 - 내장 함수(Built-in functions)  (0) 2021.09.16
파이썬 - 모듈(Module)과 패키지(Package)  (0) 2021.09.16
파이썬 - 클래스(Class)  (0) 2021.09.16
파이썬 함수 - functions(2)  (0) 2021.09.16
    'Backend/Python' 카테고리의 다른 글
    • 파이썬 - 외장 함수(External Functions)
    • 파이썬 - 내장 함수(Built-in functions)
    • 파이썬 - 모듈(Module)과 패키지(Package)
    • 파이썬 - 클래스(Class)
    meong_j
    meong_j
    #it #개발일기 #개발공부 #개발자 #백앤드 #생각정리 #시간은 실력에 비례한다 #뭐든지 꾸준히 열심히 #오늘의 내가 내일의 나를 만든다

    티스토리툴바