logo
Search검색어를 포함하는 게시물들이 최신순으로 표시됩니다.
    Table of Contents
    [Python] 예외처리

    이미지 보기

    [Python] 예외처리

    • 21.07.19 작성

    • 읽는 데 4

    TOC

    예외처리

    • 에러가 발생했을 때 그에 대해 처리를 해주는 것
    print("나누기 전용 계산기입니다.")
    num1 = int(input("첫 번째 숫자를 입력하세요 : "))
    num2 = int(input("두 번째 숫자를 입력하세요 : "))
    
    print("{0} / {1} = {2}".format(num1, num2, int(num1/num2)))
    

    상황 1.

    • num1 = 6, num2 = 3 대입
    • 출력결과는 다음과 같다.
    나누기 전용 계산기입니다.
    첫 번째 숫자를 입력하세요 : 6
    두 번째 숫자를 입력하세요 : 3
    6 / 3 = 2
    

    상황 2. ValueError

    • num1 = 6, num2 = "삼" 대입
    • 출력결과는 다음과 같다.
    ValueError: invalid literal for int() with base 10: '삼'
    

    상황 3. 해결책 'try'

    • try 내부의 구문을 실행하다가 오류가 발생한 경우, except를 찾는다.
    • except에 있는 error인 경우 error에 대한 내부 구문을 실행한다.
    try:
        print("나누기 전용 계산기입니다.")
        num1 = int(input("첫 번째 숫자를 입력하세요 : "))
        num2 = int(input("두 번째 숫자를 입력하세요 : "))
        print("{0} / {1} = {2}".format(num1, num2, int(num1/num2)))
    except ValueError:
        print("에러! 잘못된 값을 입력하였습니다.")
    

    상황 4. ValueError 해결

    • 출력결과는 다음과 같다.
    나누기 전용 계산기입니다.
    첫 번째 숫자를 입력하세요 : 6
    두 번째 숫자를 입력하세요 : 삼
    에러! 잘못된 값을 입력하였습니다.
    

    상황 5. ZeroDivisionError

    • num1 = 6, num2 = 0 대입
    • 출력결과는 다음과 같다.
    ZeroDivisionError: division by zero
    

    상황 6. ZeroDivisionError 해결

    try:
        print("나누기 전용 계산기입니다.")
        num1 = int(input("첫 번째 숫자를 입력하세요 : "))
        num2 = int(input("두 번째 숫자를 입력하세요 : "))
        print("{0} / {1} = {2}".format(num1, num2, int(num1/num2)))
    except ValueError:
        print("에러! 잘못된 값을 입력하였습니다.")
    except ZeroDivisionError as err:
        print(err)
    
    • num1 = 6, num2 = 0 대입한 후 출력한 결과는 다음과 같다.
    division by zero
    

    상황 7. IndexError

    try:
        print("나누기 전용 계산기입니다.")
        nums = []
        nums.append(int(input("첫 번째 숫자를 입력하세요 : ")))
        nums.append(int(input("두 번째 숫자를 입력하세요 : ")))
        # nums.append(int(nums[0] / nums[1]))
        print("{0} / {1} = {2}".format(nums[0], nums[1], nums[2]))
    except ValueError:
        print("에러! 잘못된 값을 입력하였습니다.")
    except ZeroDivisionError as err:
        print(err)
    
    • 출력결과는 다음과 같다.
    IndexError: list index out of range
    

    상황 8. IndexError 해결

    try:
        print("나누기 전용 계산기입니다.")
        nums = []
        nums.append(int(input("첫 번째 숫자를 입력하세요 : ")))
        nums.append(int(input("두 번째 숫자를 입력하세요 : ")))
        # nums.append(int(nums[0] / nums[1]))
        print("{0} / {1} = {2}".format(nums[0], nums[1], nums[2]))
    except ValueError:
        print("에러! 잘못된 값을 입력하였습니다.")
    except ZeroDivisionError as err:
        print(err)
    except:
        print("알 수 없는 에러가 발생하였습니다.")
    
    • 출력결과는 다음과 같다.
    알 수 없는 에러가 발생하였습니다.
    

    Reference

    profile

    FE Developer 박승훈

    노력하는 자는 즐기는 자를 이길 수 없다