python 예외처리

강정우·2022년 7월 20일
0

python

목록 보기
13/14
post-thumbnail

예외처리

  • 프로그램을 사용 중에 발생할 수 있는 사용 오류 -> 예외 -> 프로그램 실행이 중지
  • 예외처리 : 예외가 발생하여 프로그램이 잘못 동작(멈춤, 무한루프)되는 것을 방지
  • try, except 문
    • try문에 포함된 문장을 수행하다가 예외가 발생하면 except에 포함된 문장을 수행
try:
	실행문
except[발생오류[as 오류 메시지 변수]]:
	실행문 2
num1 = int(input("숫자를 입력 >> "))

try:
    result = 100 / num1
    print(result)
    
except:
    print("0")
  • 0을 입력 시 error 발생 ZeroDivisionError 하지만 except로 error를 처리한 모습

1. 예외처리 지정

  • 처리할 오류가 여러개 있다면 튜플형태로 컴마 구분해서 나열해주면 된다.
try:
	실행문
except (오류이름1, 오류이름2):
	실행문 2
  • 어떤 오류인지 모를땐 찍어보면 된다.
num1 = int(input("숫자를 입력 >> "))

try:
    result = 100 / num1
    print(result)
    
except Exception as e:
    print(e)
    
# result
## division by zero

2. else, finally

  • else문은 예외가 발생하지 않았을 때 처리되는 문장을 붙여준다.
  • finally 문은 예외 상관없이 무조건 처리해야하는 문장이 있다면 finally 문장으로 처리해주면 된다.

else 예문

# 파일을 열때 해당 파일이 없다면 예외가 발생 -> 예외처리

path = "C:/Users/AI_school/anaconda3/envs/data/test.txt"

try:
    f = open(path,'r')
    
except FileNotFoundError as e:
    print(e)
    
else:
    data = f.read()
    print(data)
    f.close()

finally 예문

path = "C:/Users/AI_school/anaconda3/envs/data/test.txt"

try:
    f = open(path,'r')
    
except FileNotFoundError as e:
    print(e)
    
else:
    data = f.read()
    print(data)
    f.close()
    
finally : 
    print("파일 읽기")

3. raise

  • 강제로 예외를 발생시키는 기능
def hap(a, b):
    if (isinstance(a,int) and isinstance(b,int)):
        print(a+b)
        
    # if 조건이 False라면 ArithmeticError 예외를 발생시킨다.
    else:
        raise ArithmeticError
        
        
try:
    hap(10, "a")
    
except ArithmeticError:
    print("예외발생")
  • isinstance(변수, 타입(class 도 가능)): 첫번째 파라미터가 두번째 파라미터의 인스턴스인가 여부(속하는 애인가 확인) 함수.

  • 내장예외들 (python 문서)

profile
智(지)! 德(덕)! 體(체)!

0개의 댓글

Powered by GraphCDN, the GraphQL CDN