본문 바로가기

Programming/Python

[Python] 예외처리

1. 기본 예외처리

def main():
    print("안녕하세요.")
    try:
        age = int(input("나이를 입력하세요: "))
        print("입력하신 나이는 다음과 같습니다.", age)
    except ValueError:
        print("입력이 잘못되었습니다.")
    
    print("만나서 반가웠습니다.")

 

2. 적극적인 예외처리

def main():
    print("안녕하세요.")
    while True:
        try:
            age = int(input("나이를 입력하세요: "))
            print("입력하신 나이는 다음과 같습니다.", age)
            break  # 입력이 정상적이면 while 루프 탈출!
        except ValueError:
            print("입력이 잘못되었습니다.")

    print("만나서 반가웠습니다.")

 

3. 둘 이상의 예외처리

def main():
    bread = 10
    try:
        people = int(input("몇 명? "))
        print("1인당 빵의 수: ", bread / people)
        print("맛있게 드세요.")
    except ValueError:
        print("입력이 잘못되었습니다.")
    except ZeroDivisionError:
        print("0으로는 나눌 수 없습니다.")

 

4. 예외 메시지 출력

def main():
    bread = 10
    try:
        people = int(input("몇 명? "))
        print("1인당 빵의 수: ", bread / people)
        print("맛있게 드세요.")
    except ValueError as msg:  # 변수 msg에 오류 메시지가 담긴다,
        print("입력이 잘못되었습니다.")
        print(msg)  # 오류 메시지 출력
    except ZeroDivisionError as msg:
        print("0으로는 나눌 수 없습니다.")
        print(msg)

 

5. finally 사용

def main():
    bread = 10
    try:
        people = int(input("몇 명? "))
        print("1인당 빵의 수: ", bread / people)
        print("맛있게 드세요.")
    except ValueError:
        print("입력이 잘못되었습니다.")
    finally:
        print("어쨌든 프로그램은 종료합니다.")

 

6. 모든 예외 무시하기

def main():
    bread = 10
    try:
        people = int(input("몇 명? "))
        print("1인당 빵의 수: ", bread / people)
        print("맛있게 드세요.")
    except:  # 이렇게 하면 모든 예외가 다 걸려든다.
        print("뭔지는 몰라도 예외가 발생했군요.")

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

[Python] Iterable 객체와 Itorator 객체  (0) 2021.01.02
[Python] 리스트 컴프리헨션 (List Comprehension)  (0) 2021.01.01
[Python] 모듈  (0) 2020.12.29
[Python] True 또는 Flase로 답하는 함수  (0) 2020.12.28
[Python] if문  (0) 2020.12.27