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

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

1069  

목차

  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.")


 


분류 제목
mysql Python - MySQL Create Table (테이블 생성)
mysql Python - MySQL Insert Into Table (데이터 삽입)
mysql Python - MySQL Select From (데이터 선택)
mysql Python - MySQL Where (조건절)
mysql Python - MySQL Order By (정렬순서)
mysql Python - MySQL Delete From (데이터 삭제)
mysql Python - MySQL Drop Table (테이블 삭제)
mysql Python - MySQL Update (데이터 수정)
mysql Python - MySQL Limit (데이터 출력개수)
mysql Python - MySQL Join (테이블 결합)
mongodb Python - MongoDB start (설치・연결)
mongodb Python - MongoDB Create Database (DB 생성)
mongodb Python - MongoDB Create Collection (컬렉션 생성)
mongodb Python - MongoDB Insert (데이터 삽입)
mongodb Python - MongoDB Find (데이터 찾기)
mongodb Python - MongoDB Query (검색 쿼리)
mongodb Python - MongoDB Sort (데이터 정렬)
mongodb Python - MongoDB Delete (데이터 삭제)
mongodb Python - MongoDB Drop Collection (컬렉션 삭제)
mongodb Python - MongoDB Update (데이터 수정)
3/24
목록
찾아주셔서 감사합니다. Since 2012