phython 기초 공부 내용 정리(예외처리)

홍준성·2022년 5월 30일
0

python 기초 공부

목록 보기
11/12

try, except

try : 
	오류가 발생할 수 있는 문장
except 오류이름 as 객체: 
	오류 발생 시 실행할 문장

모든 예외클래스의 부모클래스는 Exception
따라서 어떤 오류든지 상관없이 except로 처리할 때는
"오류 이름" 자리에 예외의 최상위 부모인 Exception을 작성한다.

try: 
	int(input("정수 입력: "))

except Exception as e:
	print("정수만 입력하세요")
    
print("반드시 실행되어야 할 문장")
어떤 에러가 나오는지 콘솔창에서 확인하려고 할때 사용
try:
	print(10 / 0)

except Exception as e:
	print(e.__str__) 

사용자 예외 처리

'바보'라는 닉네임 사용 못하도록 만들기
class NickNameError(Exception):
	pass
    
def checkNickName(name):
	if name == "바보":
    	raise NickNameError
        
nickname = input("닉네임 : ")

try:
	checkNickName(nickname)
    print("닉네임 생성 성공!")
    
except NickNameError :
	print("비속어는 사용할 수 없습니다.")
외부에서 채팅 문자열을 받아와서 in으로 비속어 검사하기
비속어는 바보, 멍청이, 똥개
사용자 예외처리로 선언하여 만든다. 비속어가 없다면 채팅 메세지를 출력한다.

class BadWordError(Exception):
	pass
    
chat = ""

def checkChatting(temp):
	badWords = ["바보", "멍청", "똥개"]
    for i in badWords:
    	if i in temp :
        	global chat // 전역변수를 안에서 수정하고 있으므로 global함수로 끌어온다.
        	chat = temp.replace(i,"**") // badWords에 속하는 것을 **로 변경해준다.
            raise BadWordError()

while True:
	chat = input("채팅[나가기:q] : ")
    if chat.lower() == 'q':
    	break 
    //lower는 문자열을 소문자로 바꿔주는 함수(나가기가 소문자q이기 때문에 적용)
    
    try:
    	checkChatting(chat)
        print(chat)
    except BadWordError:
    	cnt += 1
    	print("%d회 비속어를 사용하셨습니다." %cnt)
        print(chat)
profile
준성이의 개발자 공부 velog

0개의 댓글