예외
예외에는 두 가지 주요 유형이 있습니다.
1) 예측 가능한 예외
2) 이것은 예상치 못한 예외입니다.
예상되는 예외는 if 문으로 처리할 수 있지만 예측할 수 없는 예외는 인터프리터 프로세스 중에 발생하는 예외입니다.
try-except 문을 사용하십시오.
try:
print("start")
print(abc)
except NameError:
print("에러발생")
결과>>
start
에러발생
다음과 같이 사용할 수 있습니다.
모든 예외를 참조하는 Exception을 사용할 수 있지만 어떤 종류의 오류인지 알 수 없으므로 사용하지 마십시오.
그렇지 않으면, 마침내, 시도하다
try : 오류가 발생할 것으로 예상되는 코드 작성
except : try 문을 읽다가 오류가 발생하면 건너뜁니다.
else: 오류가 발생하지 않은 경우 else 문으로 이동합니다.
final: 오류 여부와 상관없이 try 문이 종료된 후 실행할 문
승강기
프로그램이 의도하지 않게 실행되는 것을 방지하기 위해 의도적으로 오류를 생성할 때 사용합니다.
a = (1,2,3)
if 2 in a:
raise
print("good")
결과>> 런타임에러
실행이 잘 되기 전에 raise가 오류를 발생시키기 때문에 프로그램이 충돌하는지 확인할 수 있습니다.
또한,
a = (1,2,3)
if 2 in a:
raise ZeroDivisionError
print("good")
결과>> ZeroDivisionError
오류 유형을 재정의할 수 있습니다. raise ZeroDivisionError 문은 0을 나누지 않았는데도 ZeroDivisionError가 발생했음을 확인했습니다.
간물
Python 객체 자체를 파일에 저장
import pickle
f = open("ex1.pickle", "wb")
test = (1,2,3,4)
pickle.dump(test, f) #test란 객체를 ex1.pickle에 옮기는 것
f.close()
바이너리 형식으로 번역 및 생성되었습니다.
import pickle
f = open("ex1.pickle", "rb") # read binary
test = pickle.load(f) #load
print(test)
f.close()
결과>> (1,2,3,4)
rb 옵션을 통해 바이너리 파일 읽기
규약
import logging as l
l.debug("debug용")
l.info("info용")
l.warning("warning용")
l.error("error용")
l.critical("critical용")
| 심지어 | 값 |
| 디버그 | 10 |
| 정보 | 20 |
| 경고 | 30 |
| 실수 | 40 |
| 비판적인 | 50 |
위와 같은 수준에서 종료합니다.