• 회원가입
  • 로그인
  • 구글아이디로 로그인

[basic] Python - Try...Except - 에러 테스트/제어. (= 트라이...익세프트)

946  

목차

  1. try...except...finally 정의
  2. 단일 except (= 에러 제어)
  3. 여러 except (= 에러 종류별 제어)
  4. else 키워드 - 에러 없을 시 실행 코드 정의
  5. finally 키워드 - 항상 실행할 코드 정의
  6. raise Exception (에러 수동 야기)
  7. try...except...finally 구문에서 에러 별칭 사용

 

try...except...finally 정의

 

try

코드 블럭 에러 테스트.

 

except

에러 제어. (= 에러 발생 시 실행할 내용.)

 

finally

try...except...구문 결과와 무관하게, 코드 실행.

 

 

단일 except (= 에러 제어)

print(x) 구문이 에러 유발해서, except 구문이 실행됨.

만약, try...except... 코드 블럭 없으면, 충돌나서 에러 냄.

 

try:

  print(x) # 에러 유발. (∵ x가 정의 안 된 상태.)

except:

  print("에러 제어 사유 발생.")

 

 

여러 except (= 에러 종류별 제어)

여러 except 구문 사용해 에러 종류별로 각각 제어 가능.

※ 아래 예제 경우, except NameError: 구문이 실행됨.

 

try:

  print(x) # 에러 유발. (∵ 변수 x 미정의 상태.)

except NameError:

  print("변수 x 미정의.")

except:

  print("그외 오류 발생.")

 

결과값: 변수 x 미정의.

 

else 키워드 - 에러 없을 시 실행 코드 정의

아무 에러도 발생 안 한 경우, 실행할 코드 정의.

 

try:

  print("Homzzang.com")

except :

  print("뭔가 에러 발생.")

else:

  print("에러 발생 안 함.")

 

결과값:

Homzzang.com

에러 발생 안 함.

 

finally 키워드 - 항상 실행할 코드 정의

1. try 코드 블럭의 에러 발생 유무와 무관하게, 실행할 코드 정의.

 

try:

  print(x)

except:

  print("뭔가 오류 발생")

finally:

  print("'try...except...'  구문 완료.")

 

결과값:

뭔가 오류 발생

'try...except...'  구문 완료.


2. finally는 객체를 닫고 리소스 정리할 때도 유용.

※ 객체를 안 열어두고서, 프로그램 계속 실행 가능.

 

try:

  f = open("hz.txt")

  f.write("Homzzang.com") # 읽기 전용 파일에 쓸 때 에러 발생.

except:

  print("파일에 쓸 때 뭔가 오류 발생.")

finally:

  f.close()

 

결과값: 파일에 쓸 때 뭔가 오류 발생.

 

raise Exception (에러 수동 야기)

1. 조건 충족시켜 에러 제어 코드 실행을 설정 가능.

 

x = -1

if x < 0:

  raise Exception("음수는 불가. ㅡㅡ;")

 


2. 에러 종류와 전달할 메세지 선택도 가능.

 

x = "Homzzang.com"

if not type(x) is int:

  raise TypeError("정수만 허용됨.")

 

결과값: ... TypeError: 정수만 허용됨.

 

try...except...finally 구문에서 에러 별칭 사용

 

try:

    result = some_function_that_might_raise_an_error()

except SomeSpecificError as e:

    # 특정 예외가 발생했을 때의 처리

    print(f"An error occurred: {e}")

except AnotherError as e:

    # 다른 예외가 발생했을 때의 처리

    print(f"Another error occurred: {e}")

else:

    # 예외가 발생하지 않았을 때의 처리

    print("No errors occurred.")

finally:

    # 예외 발생 여부와 상관없이 항상 실행되는 코드

    print("Finally block.")


 


분류 제목
basic Python - Home (입문) - 이념 / 추천 링크
basic Python - Intro (소개) - 용도・특징
basic Python - Start (시작) - 파이썬 설치/실행/버전확인
basic Python - Syntax (구문) - 들여쓰기・변수・주석
basic Python - Comment (주석)
basic Python - Variable (변수)
basic Python - DataType (데이터타입) - 자료형
basic Python - Number (숫자)
basic Python - Casting (데이터 타입 변경) - 자료형 변환
basic Python - String (문자열) ★ ※ 색인번호 (= 인덱스) 개념.
basic Python - Boolean (참거짓)
basic Python - Operator (연산자)
basic Python - List (리스트) ★ - 변경 가능한 모음
basic Python - Tuple (투플/튜플) - 변경 불가 모음
basic Python - Set (셋/세트) - '순서(=색인)' 없고, 중복 허용 않는 데이터 모음.
basic Python - Dictionary (딕셔너리) - Key:value 쌍으로 구성된 모음
basic Python - if...elif...else - (이프조건문) ※ 3항연산자 = 삼항연산자
basic Python - While (와일반복문) - 와일문
basic Python - For (포반복문) ★★★★★
basic Python - Function (함수)
1/24
목록
찾아주셔서 감사합니다. Since 2012