파이썬- 예외처리

ahncheer·2025년 2월 4일

python

목록 보기
12/25

1. 오류는 언제 발생하는지

없는 파일을 열려고 하는 경우
숫자를 0으로 나누려고 하는 경우
리스트의 값을 index로 찾으려고 하는데, index가 length값보다 커서 값이 없는 경우

2. 오류 예외 처리기법

try-except문
try-except만 쓰는 방법

try : 
    ...
except 
    ...

발생 오류만 포함한 except문

try : 
    ...
except 발생오류
    ...

발생 오류와 오류 변수까지 포함한 except문

try:
    ...
except 발생오류 as 오류변수:
    ...
try:
    4 / 0
except ZeroDivisionError as e:
    print('except ZeroDivisionError as e : ', e)

2-2. try-finally문

try:
    # 무언가를 수행한다.
     print('try-finally > try')
finally:
    print('try-finally > finally') # 중간에 오류가 발생하더라도 무조건 실행된다.

2-3. 여러개의 오류 처리하기

기본 구조 
try:
    ...
except 발생오류1:
   ... 
except 발생오류2:
   ...
try:
    a = [1,2]
    print(a[3])
    4/0
except ZeroDivisionError:
    print("except ZeroDivisionError: > 0으로 나눌 수 없습니다.")
except IndexError as e:
    print('except IndexError as e: : ', e)

+) 소괄호로 두개를 묶어서 한번에 처리할 수 있음

2-4. try-else문

try:
    ...
except [발생오류 [as 오류변수]]:
    ...
else:  # 오류가 없을 경우에만 수행
    ...
try:
    age=int(input('나이를 입력하세요: '))
except:
    print('입력이 정확하지 않습니다.')
else:
    if age <= 18:
        print('미성년자는 출입금지입니다.')
    else:
        print('환영합니다.')


3. 오류 회피하기

pass 사용하기

try:
    f = open("나없는파일", 'r')
except FileNotFoundError:
    pass

4. 오류 일부러 발생시키기

raise NotImplementedError 사용

5. 예외 만들기

파이썬 내장클래스인 Exception을 상속함.

class MyError(Exception):
    print('MyError 실행됨')
    pass

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

참고 링크 : https://wikidocs.net/30

profile
개인 공부 기록용.

0개의 댓글