now is better than never

[easyupclass] 초심자를 위한 빅데이터 분석 및 머신러닝 응용과정(파이썬) 16강 - 예외처리 본문

Python/초심자를 위한 빅데이터 분석 및 머신러닝 응용과정

[easyupclass] 초심자를 위한 빅데이터 분석 및 머신러닝 응용과정(파이썬) 16강 - 예외처리

김초송 2022. 10. 25. 01:13

Exception

- 프로그램 실행 중 오류가 발생했을 때 코드가 중단되지 않도록 예외 상황을 선언하고 처리

 

try except

try: 
	문제 없을 시 실행할 코드
except:
	문제 발생(예외 상황) 시 실행할 코드

- 출력 등 반드시 확인해야 할 것들은 try except 구문 밖에 작성

- 형변환, 연산 등 오류가 발생할 것 같은 코드를 try 안에 작성

 

try except else

- except가 실행되지 않으면 else 문 실행

print("start")
n = input("set range: ")

try: 
    res = sum(range(int(n)+1))
except:
    print("wrong input")
else:
    print("result: ", res)
print("done")

 

try except finally

- except 실행 유무와 상관없이 무조건 finally 문 실행

print("start")

def divding():
    n1, n2 = tuple(input("insert number: ").split(" "))
    try :
        return int(n1)/int(n2)
    except:
        print("wrong number")
    finally: 
        print("end")

 

try excepy Exception

- 발생 가능한 예외 상황을 Exception 객체 정의

- 해당 Exception 발생 시 return에 원하는 실행문 작성

try: 
    실행문
except ExceptionType:
    return 예외 상황 시 실행문
(except ExceptionType2:
    return 예외 상황 시 실행문2)
def divding():
    n1, n2 = tuple(input("insert number: ").split(" "))
    try: 
        return int(n1) / int(n2)
    except ZeroDivisionError:
        print("Zero Division Error")

 

 

설정되어 있는 Exception 오류만 출력

try:
    실행문
except Exception as e:
    print(e)

 

사용자 정의 예외 처리

- 정상적으로 실행되는 코드를 작성자 기준에서 오류라고 재정의하고 예외 처리

- 사용자 정의 Exception 클래스는 Exception을 상속받아야 함

class ExceptionType(Exception):
    def __str__(self):
        return "표기하고 싶은 에러문"
class LowNumber(Exception):
    def __str__(self):
        return "number should be greater than 10"
    
def input_number(num):
    if num <= 10: raise LowNumber()
    print(num)