[wecode 9일차] - Exceptions

hyuckhoon.ko·2020년 6월 2일
0

What I learned in wecode

목록 보기
39/109

1. Exceptions란

의도하지 않은 에러가 일어나는 경우
= "Exception이 일어났다."


2. Exception handling

에러 발생 --> 프로그램 미중단 --> 다음 로직 실행 및 프로그램 진행

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
    finally:
        print("이 문장은 exception 발생 여부와 상관없이 무조건 실행됩니다!")

    return elem

result = return_elem_or_minus_one(2)
print(result)

결과

이 문장은 exception이 발생되면 실행되지 않습니다!
이 문장은 exception 발생 여부와 상관없이 무조건 실행됩니다!
3



이번엔 인자로 5를 넣어보자.
(원래라면 인덱스 에러 발생하여 프로그램 중단)

result = return_elem_or_minus_one(5)
print(result)

결과

이 문장은 Exception이 발생하면 실행 됩니다
이 문장은 exception 발생 여부와 상관없이 무조건 실행됩니다!
-1

3. 예시

divison 함수를 실행시 발생하는 exception을 핸들링하시오.
(-1 리턴하도록)

def division(num1, num2):
    try:
        result = num1 / num2
    except ZeroDivisionError:
        result = -1
    except Exception as e:
        print(f'Exception에러 이외의 에러가 발생했습니다. : {e}')
        result = -1
    return result
print(division(1, 0))

나누기 연산자 (/)의 ExceptionError를 핸들링하였다.
기본적으로 0으로 나누는 경우는 수학적으로 정의되지 않았기 때문이다.

따라서,
아래와 같은 파이썬 syntax를 통해 구현하였다.




                                     - One step at a time - 

0개의 댓글