[TIL_Python]Exceptions

HYEYOON·2021년 1월 28일
0

Exceptions
예외..
의도하지 않은 예외사항..
이런일은 자주일어나지..
그러면 에러가 뜨지..
그럼 또 머리가 아프지..

만약 요소의 수가 3개인 list에서 실수로 4번째 요소를 indexing하게 되면 indexError가 난다. Exception이 발생하게 되면, 발생한 위치에서 다음 코드들이 실행되지않고 프로그램이 종료된다.하지만 Exception이 발생해도 해당 프로세스가 종료되지않고 대신에 다른 로직을 실행하게 한 후 프로그램을 계속 실행하게 할 수 있다. 이것을 exception heading이라고 한다.

예를 들어, user가 잘못된 값을 input으로 입력해서 exception이 일어났다고 해도, 종료하지 말고 유저에게 메세지를 리턴하도록 할 수 있다. Exception handling은 try except 구문을 사용해서 실행합니다.

try:
     문장1
     문장2
     ...
     문장N    
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이 발생하지 않았을때 실행된다.

profile
Back-End Developer🌱

0개의 댓글