TIL14: python-8

Seoyul Kim·2020년 4월 12일
0

Python

목록 보기
12/16

exceptions

  • 의도하지 않은 에러가 일어나는 경우와 같은 예외 상황을 exception이 일어났다고 한다.
  • 유저의 input을 기반으로 어떠한 연산을 하게 될 때 유저가 어떠한 형태의 데이터를 input으로 입력할지 항상 알 수없기 때문에 exception이 발생될 가능성이 높다.
  • exception이 발생하면 발생한 코드 위치에서 다음 코드들이 실행되지 않고 곧바로 프로그램이 종료를 하게된다.
  • exception이 발생해도 해당 프로세스가 종료하지 않고 대신에 다른 로직을 실행하게 한 후 프로그램을 계속 실행하게 하는 것을 exception handling이라고 한다.
  • exception handling은 try except 구문을 사용해서 실행한다.
try:
	문장1
	문장2
except Exception:
	exception이 일어났을 경우 실행할 예외 처리코드
finally:
	exception 여부와 상관 없이 항상 마지막에 실행되는 코드
  • exception을 catch할 때 as 문을 써서 해당 exception의 객체를 방아서 정보를 더 얻을 수 있다
def return_elem_or_minus_one(index):
    short_list = [1, 2, 3]
    elem = 0

    try:
        elem = short_list[index]
        print("이 문장은 exception이 발생하지 않으면 실행됩니다")
    except IndexError:
        print(f"이 문장은 Exception이 발생하면 실행 됩니다")
        elem = -1
    except Exception as e:
        print(f"IndexError가 아닌 다른 종류의 Exception이 발생했습니다 ==> {e}")
        elem = -1
    finally:
        print("이 문장은 exception 발생 여부와 상관없이 무조건 실행됩니다!")

    return elem
  • try문에서도 else를 사용할 수 있다. else문은 exception이 발생하지 않았을 때 실행한다.
def return_elem_or_minus_one(index):
    short_list = [1, 2, 3]
    elem = 0

    try:
        elem = short_list[index]
        print("이 문장은 exception이 발생하지 않으면 실행됩니다")
    except IndexError:
        print(f"이 문장은 Exception이 발생하면 실행 됩니다")
        elem = -1
    except Exception as e:
        print(f"IndexError가 아닌 다른 종류의 Exception이 발생했습니다 ==> {e}")
        elem = -1
    else:
        print(f"Exception이 발생하지 않았습니다!") 
    finally:
        print("이 문장은 exception 발생 여부와 상관없이 무조건 실행됩니다!")

    return elem

0개의 댓글