목차

    예외처리

    개념

    • 코드를 실행 중에 발생하는 에러를 처리하기 위한 처리입니다.

    예외처리 하기

    특정 코드에 대한 예외처리

    try:
        코드
    except 예외명:
        코드
    • 위와 같이 특정 에러에만 특별한 처리를 하고 싶으면 except를 이용하면 된다.
      • except는 여러개를 작성해도 된다.
    • try문에서 에러가 발생하면, 그 코드 줄(발생 위치) 실행하지 않는다.
      • 에러에 맞는 except로 이동하여 처리한다.

    간단 예시

    try:
        num = 2 /0
        print(num)
    except ZeroDivisionError:
        print('0으로 나눌 수 없습니다.')
    • 위와 같이 작성한다면 try문의 print(num)은 출력하지 않고, except에 '0으로 나눌 수 없습니다.' 가 출력된다.

    에러 메시지 받아오기

    try :
        코드
    except 예외 as 변수:
        코드
    • 위와 같이 작성한다면 예외에 관한 메시지들을 받아올 수 있다.
    try:
        num = 2 /0
        print(num)
    except ZeroDivisionError as e :
        print('0으로 나눌 수 없습니다.',e)
    • 위와 같이 작성한다면 try문의 print(num)은 출력하지 않고, except에 '0으로 나눌 수 없습니다. division by zero'가 출력된다.

    위와같이 사용할 수 있지만, 모든 에러를 볼 수 있는 <font color = red > Exeception </font>을 많이 사용한다.

    except Execption as e :
        print("Error 발생",e)

    ` 위와같이 사용한다면 모든 에러 메시지를 받아올 수 있다.

    else 및 finally

    • else는 예외가 발생하지 않았을 때 실행할 코드이다.
      • except: 가 실행했다면, 실행되는 코드 블록이다.
    • finally는 예외 발생 여부와 상관없이 실행하는 코드이다.
      • except: 의 실행 여부에 상관없이 무조건 실행되는 코드 블록이다.
    try:
        실행할 코드
    except:
        예외 발생시 실행할 코드
    else:
        예외 발생하지 않는다면 실행할 코드
    finally:
        예외 발생여부 상관없이 실행할 코드

    간단한 예시

    try:
        num = 2 /2
        print(num)
    except:
        print("Error 발생",e)
    else:
        print("Error 발생 안했어요")
    finally:
        print("코드 끝났어요")

    위와 같은 코드를 실행하면 '1'을 출력하고 else문과 finally문을 실행하게 된다.

    예외 발생시키기

    • 위와 같은 방법으로는 파이썬에서 지정한 예외에 대한 처리만 할 수 있습니다.
    • 개발자가 생각하는 상황을 예외처리를 하여 발생시키는 방법입니다.

    방법

    raise 예외('에러 메시지')

    예시

    try:
        x = int(input('2의 배수를 입력하시오.'))
        if x %2 ==1:
            raise Exception('2의 배수가 아니에요')
        print(x)
    except Exception as e:
        print('예외가 발생!!',e)

    위와 같이 개발자가 예외 상황을 만들 수 있습니다.

    다시 except에서 실행 후 try문으로 돌아가기.

    "raise 예외('에러 메시지')" 넣기!

    try:
        x = int(input('2의 배수를 입력하시오.'))
        if x %2 ==1:
            raise Exception('2의 배수가 아니에요')
        print(x)
    except Exception as e:
        print('예외가 발생!!',e)
        raise RuntimeError('예외가 발생했어요!!')
    • 코드 실행 중 raise를 만나면 실행 줄이 try로 돌아간다.

    "assert 조건식, 에러 메시지 "를 이용하여 발생시킬 수 있다.

    • 조건식이 FALSE면 예외를 발생시킴
       x = int(input('2의 배수를 입력하시오.'))
       assert x %2 ==1 , '2의 배수가 아니에요'
    • 위와 같이 사용하면 됩니다.
    • 디버깅 모드에서만 실행됨.
      • python -o 파일.py 이렇게 실행시켜야 한다.

    '프로그래밍 및 IT > 파이썬 ( Python )' 카테고리의 다른 글

    파이썬( 클래스 )_10  (0) 2021.05.12
    파이썬(함수)_09  (0) 2021.05.06
    파이썬(파일 입출력)_08  (0) 2021.05.02
    파이썬(문자열)_07  (0) 2021.04.30
    파이썬(반복문)_06  (0) 2021.04.29

    + Recent posts