제로베이스 데이터 취업 스쿨 과정 학습 내용을 정리한 포스팅입니다.
📍 예외 처리
예외: 문법적인 문제는 없으나 실행 중 발생하는 예상하지 못한 문제
n1 = 10
n2 = 0
print(n1 / n2) # 문법적 오류는 없으나 0으로 나누는 건 문제 상황이다.
=> 예외 발생: ZeroDivisionError: division by zero
📍 try ~ except
의도한 부분을 try 하고, 오류가 발생할 경우에도 error 발생으로 이후 스크립트가 멈추지 않고 except 이하가 실행되도록 한다.
n1 = 10; n2 = 0
try:
print(n1 / n2)
except:
n2 += 0.01
print(n1 / n2)
=> 분모가 0인 오류 상황인데도 에러 발생으로 멈추지 않고, except에서 값을 수정하여 예외 상황에서의 실행으로 이어진다.
📍 try ~ except ~else
예외가 발생하지 않은 경우, else 이하를 실행하도록 한다.
n1 = 10; n2 = 1
try:
print(n1 / n2)
except:
n2 += 0.01
print(n1 / n2)
else:
print("예외 없이 실행되었습니다") # 출력
📍 finally
예외 발생 여부와 관계없이 항상 실행하도록 한다.
n1 = 10; n2 = 1
try:
print(n1 / n2)
except:
n2 += 0.01
print(n1 / n2)
else:
print("예외 없이 실행되었습니다") # 출력
finally:
print("모든 작업이 끝났습니다) # 출력
📍 Exception 클래스
Exception 클래스로 예외 상황에서의 에러 메시지를 확인할 수 있다.
n1 = 10; n2 = 1
try:
print(n1 / n2)
except Exception as e:
print(f"예외 발생 : {e}")
n2 += 0.01
print(n1 / n2)
=> division by zero 출력
raise를 이용해 강제로 예외를 발생시킬 수 있다.
def sendSMS(msg):
if len(msg) > 10:
raise Exception("길이초과! MMS 전환 후 발송", 1)
else:
print("SMS 발송!")
def sendMMS(msg):
if len(msg) <= 10:
raise Exception("길이미달! SMS 전환 후 발송", 2)
else:
print("MMS 발송!")
msg = "1234567891011"
try:
sendSMS(msg)
except Exception as e:
if e.args[1] == 1:
sendMMS(msg)
elif e.args[1] == 2:
sendSMS(msg)
📍 파일 열기, 읽기, 쓰기
with ~ as 문을 이용하여 파일을 열고, 읽고, 쓸 수 있다.
with open("content/text.txt", 'r') as f: # 읽기
print(f.read())
with open("content/text.txt", 'w') as f: # 쓰기, 이미 있다면 새로 덮어쓴다.
f.write("안녕하세요.")
with open("content/text.txt", 'a') as f: # 쓰기, 이어서 쓴다.
f.write("반갑습니다.")
📍 writelines()
여러 데이터를 포함한 자료형을 쓸 때 사용
alpha = ['a', 'b', 'c', 'd']
with open('contents/text.txt', 'a') as f:
f.writelines(alpha)
📍 readlines()
파일의 모든 데이터를 읽어서 리스트 형태로 반환
with open('contents/text.txt', 'r') as f:
alpha_lst = f.readlines()
'Programming > Python' 카테고리의 다른 글
파이썬 자료구조 - 리스트(list), 튜플(tuple) (0) | 2023.05.25 |
---|---|
파이썬 수학 - 약수, 소수, 소인수, 진법 변환, 수열, 순열, 조합 (0) | 2023.05.23 |
파이썬 중급 - 02 객체 지향 프로그래밍, 클래스, 얕은복사, 깊은복사, 생성자, 상속, 오버라이딩, 추상클래스 (1) | 2023.05.10 |
파이썬 중급 - 01 (0) | 2023.05.08 |
파이썬 기초 - 03 (0) | 2023.05.07 |