혼공학습단/혼자 공부하는 파이썬

[혼공학습단 파이썬] #6-1. 예외 처리

✨️데이터분석가✨️ 2023. 8. 7. 21:44
728x90
728x90
6. 예외 처리
    1) 구문 오류와 예외
    2) 예외 처리
         (1) 기본 예외 처리

         (2) try except 구문
         (3) try except 구문 + pass 키워드

         (4) finally 구문

 

1) 구문 오류와 예외

구문 오류 (Syntax Error) 예외 (런타임 에러)
- 프로그램 실행 에 발생
- 코드의 문법적인 오류로 인해 프로그램이 실행되지 않는 오류

- 코드 수정으로 해결
- 프로그램 실행 에 발생하는 오류
- try except 구문 등 예외 처리로 해결

 

 

2) 예외 처리

 

(1) 기본 예외 처리 (조건문으로 예외 처리) 

- 정수를 입력하지 않을 경우, 예외가 발생하는 구문

→ isdigit() 함수로 숫자인지 확인한 후, int() 함수로 숫자로 변환하면서 예외 처리 

while True:
    string = input("정수입력: ")
    if string.isdigit():
        number = int(string)
        print("원의 반지름: ", number)
        print("원의 넓이: ", 3.14 * number * number)
        break
    else:
        print("정수로 입력해주세요.")
더보기

# 실행결과

정수입력: 3.5
정수로 입력해주세요.
정수입력: 3
원의 반지름:  3
원의 넓이:  28.259999999999998

 

 

(2) try except 구문

- 예외를 처리할 수 있는 구문

- try:

      예외가 발생할 가능성이 있는 코드

  except:

      예외가 발생했을 때, 실행할 코드

while True:
    try:
        number = int(input("정수입력: "))
        print("원의 반지름: ", number)
        print("원의 넓이: ", 3.14 * number * number)
        break
    except:
        print("정수로 입력해주세요.")
더보기

# 실행결과

정수입력: 3.5
정수로 입력해주세요.
정수입력: 3
원의 반지름:  3
원의 넓이:  28.259999999999998

 

 

(3) try except 구문 + pass 키워드

- pass 키워드가 포함된 예제

list_input = ["52", "352", "문자", "800"]
list_number = []
for item in list_input:
    try:
        float(item)
        list_number.append(item)
    except:
        pass
print("{} 내부에 있는 숫자는".format(list_input))
print("{}입니다.".format(list_number))
더보기

# 실행결과

['52', '352', '문자', '800'] 내부에 있는 숫자는
['52', '352', '800']입니다.

 

 

(4) finally 구문

- 예외 처리 구문에서 가장 마지막에 사용할 수 있는 구문

- 필요하면 사용하는 옵션 기능 (반드시 사용해야하는 구문은 아님!)

try:

      예외가 발생할 가능성이 있는 코드

  except:

      예외가 발생했을 때, 실행할 코드

  finally:

      무조건 실행하는 코드

 

① return, break 키워드와 사용

- return, break 키워드가 있는 경우에도 finally 구문은 무조건 실행됨

def test():
    print("test() 함수의 첫 줄입니다.")
    try:
        print("try 구문이 실행되었습니다.")
        return
        print("return 키워드 뒤 입니다.")
    except:
        print("except 구문이 실행되었습니다.")
    finally:
        print("finally 구문이 실행되었습니다.")
    print("test() 함수의 마지막 줄입니다.")
test()
더보기

# 실행결과

test() 함수의 첫 줄입니다.
try 구문이 실행되었습니다.
finally 구문이 실행되었습니다.

 

 

② close() 함수와 사용

- 파일을 무조건 닫아야 하는 close() 함수에 finally 구문을 사용함

finally:
    file.close()

 

 

 

 

728x90
728x90