예외처리 / 만들기

JoyJuhee·2022년 10월 25일
0

Python

목록 보기
12/22
post-thumbnail

예외처리

1) 예외처리가 필요한 이유
: 프로그램 실행 중에 발생하는 에러를 미연에 방지

2) try - except 구문

  • try : 예외가 발생할 수 있는 코드
  • except : 에외 발생 시 실행할 코드
  • else : 예외 발생하지 않은 경우 실행할 코드 (자주 사용하지는 않음.)
  • finally : 항상 실행할 코드로 자원을 반환할 때 사용
# 원화를 입력받고 환율을 입력받을 때 -> 달러값을 출력

won = input("원화금액을 입력 하세요>>>")
dollar = input("환율을 입력하세요>>>")

try : # 예외가 발생할 수 있는 코드
    print(int(won) / int(dollar)) 
except ValueError as e: 
    # 예외가 발생했을 때 실행되는 코드로 발생할 수 있는 에러를 직접 적어줄 수 있다.
    print("예외가 발생했습니다.", e)
except ZeroDivisionError as e:
    print("예외가 발생했습니다.", e)
else:
    print("예외가 발생하지 않았을때 실행되는 코드입니다.")
finally: # 파일 닫기
    print("예외가 발생하던지, 발생하지 않던지 실행되는 코드")

예외만들기

1) raise 구문 : 에러를 강제로 발생하기 위한 코드

  • raise 예외("에러 메세지")

2) 예외 계층 구조

👉 except ZeroDivisionError 와 except ArithmeticError는 다르다.
👉 except Exception : 모든 내장 예외들을 포함

3) 에러 만들기

class 예외(Exception):
	def __init__(self):
    		super().__init__("에러 메세지") # 부모클래스를 호출한다.

4) 실습

# raise 구문을 사용해서 에러를 강제로 발생시켜 보자.

try:
    num = int(input("음수를 입력해주세요."))
    if num >= 0:
        raise ValueError("양수는 입력 불가") 
except ValueError as e:
    print("에러 발생!", e)
# 에러 만들기 
class PositiveNumberError(Exception):
    def __init__(self):
        super().__init__("양수는 입력 불가")

try:
    num = int(input("음수를 입력해주세요."))
    if num >= 0:
        raise PositiveNumberError
except PositiveNumberError as e:
    print("에러 발생!", e)

출처 : 패스트캠퍼스 Python & Django로 시작하는 웹 프로그래밍

0개의 댓글