세모이
개발 계발
세모이
전체 방문자
오늘
어제
  • 분류 전체보기 (83)
    • 알고리즘 (1)
    • 자바스크립트 (29)
    • 리액트 (10)
    • HTML&CSS (2)
    • TIL (26)
    • 파이썬 (8)
    • Dev (1)
    • 데일리 (3)
      • 2023 (3)
      • 2025 (0)
    • 에러일기 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 모던 자바스크립트 deep deive
  • 자바스크립트 생성자 함수에 의한 객체 생성
  • 옵셔널 체이닝
  • 자바스크립트 strict mode
  • 자바스크립트 프로토타입
  • 자바스크립트 빌트인 객체
  • 개발자 도구 Network
  • 함수
  • 자바스크립트 깊은 복사 얕은 복사
  • 리액트 key
  • 자바스크립트 함수와 일급 객체
  • 자바스크립트 전역 변수의 문제점
  • html 신기한 태그
  • 자바스크립트
  • const let 키워드와 블록레벨 스코프
  • 자바스크립트 프로퍼티 어트리뷰트
  • 모던 자바스크립트
  • 시멘틱 태그
  • 모던 자바스크립트 deep dive
  • &&연산자

최근 댓글

최근 글

티스토리

반응형
hELLO · Designed By 정상우.
세모이
파이썬

6. 파이썬 예외(python exception)

파이썬

6. 파이썬 예외(python exception)

2021. 2. 7. 14:32
반응형

예외 처리

##1. 기본 형태

try :
    ...
except [오류 사항 [as 오류 메시지 변수]] :
    ...
finally:
    ...
  • try 구문 안에 오류 발생 가능성이 있는 코드를 사용

    만약 try 구문 안에 들어 있는 코드에서 예외가 발생하면 그 즉시 except 구문으로 코드 흐름이 점프
  • except 구문에는 예외가 발생했을 때 예외 처리를 할 수 있는 코드가 있다
  • finally 구문은 try 구문 수행 도중 예외 발생 여부와 상관없이 항상 실행(리소스 해제를 위해 많이 사용)

    리소스 해제가 필요 없는 경우에는 finally 구문을 생략할 수 있다

2. 예제

try :
    a = [1, 2]
    print(a[3])
    4 / 0
except Exception as e:
    print(e)
finally: print('무조건 실행')

>>list index out of range
무조건 실행

* 파이썬에서는 10을 0으로 나눌 수 없기 때문에 예외를 발생
변수 e를 통해 오류 내용을 확인 할 수 있다

3. 여러 개의 예외 처리

try :
    a=10
    b='zero'
    c=a/b
    print(c)
except ZeroDivisionError as e:
    print(e)
except TypeError as e:
    print(e)

>> unsupported operand type(s) for /: 'int' and 'str'
정수형(int) 10을 문자열 'zero'로 나눌 수 없기 때문에 TypeError 예외가 발

* 0으로 바꿔 실행하면 
division by zero 

4. 리소스를 사용할 때 예외 처리를 하는 방법

pickle - 파이썬 객체를 파일로 저장하고 메모리로 읽어올 수 있도록 모와주는 모듈

import pickle

f=open('setting.txt', 'wb')     # open() 함수를 이용해 setting.txt. 파일을 바이너리 쓰기(wb) 모드로 파일을 읽을 수 있는 파일 객체를 반환
                                # 기존 setting.txt 파일이 있다면 기존 내용을 덮어씀
try :
    setting=[{'title' : 'python program'}, {'author': 'kei'}]
    pickle.dump(setting, f)     #dump() 함수를 이용해 리스트 객체 setting의 내용을 파일 객체 f에 저장
except Exception as e:
    print(e)
finally:
    f.close()

5. 예외 만들기

  • 프로그램 수행 도중 특수한 경우에만 예외 처리를 하기 위해 예외를 만들어서 사용
  • 파이썬 내장 클래스인 Exception 클래스를 상하여 만들 수 있다
class MyError(Exception):
    pass

def say_nick(nick):
    if nick=='바보':
        raise MyError()
    print(nick)

say_nick('테스트트')

>>테스트트


say_nick('바보')

Traceback (most recent call last):
  File "/Users/cozy/Python/Python/test", line 10, in <module>
    say_nick('바보')
  File "/Users/cozy/Python/Python/test", line 6, in say_nick
    raise MyError()
__main__.MyError
class MyError(Exception):
    pass

def say_nick(nick):
    if nick=='바보':
        raise MyError()
    print(nick)

try:
    say_nick('테스트')
    say_nick('바보')
except MyError :
    print('허용되지 않은 별명')

>>테스트
허용되지 않은 별명
반응형

'파이썬' 카테고리의 다른 글

(쓰면서 익히는 알고리즘과 자료구조) chapter1. 배열  (0) 2021.09.16
7. 파이썬 엑셀 파일 읽고 쓰기  (0) 2021.02.07
5. 파이썬 모듈(python module)  (0) 2021.01.30
4. 파이썬 클래스 (python class)  (0) 2021.01.29
3. 파이썬 함수(python function)  (0) 2021.01.29
  • 2. 예제
  • 3. 여러 개의 예외 처리
  • 4. 리소스를 사용할 때 예외 처리를 하는 방법
  • 5. 예외 만들기
'파이썬' 카테고리의 다른 글
  • (쓰면서 익히는 알고리즘과 자료구조) chapter1. 배열
  • 7. 파이썬 엑셀 파일 읽고 쓰기
  • 5. 파이썬 모듈(python module)
  • 4. 파이썬 클래스 (python class)
세모이
세모이
개발 공부!

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.