1 분 소요

예외 처리

  • 에러 : 심각한 오류
  • 예외 : 덜 심각한 오류
 try :	
  오류가 발생할 수 있는 문장
	
except 오류 이름 as 객체:		  	// alias : 별칭
  오류 발생 시 실행할 문장
  • 모든 예외 클래스의 부모 클래스는 Exception이다.
  • 어떤 오류든지 상관없이 except로 처리할 때에는 "오류 이름" 자리에 예외의 최상위 부모인 Exception을 작성한다.
  • 오류는 앞글자가 대문자이다(클래스)

exception test

try:
    int(input("정수 입력 : "))
except Exception as e:
    print("정수만 입력하세요")
    
print("반드시 실행되어야 할 문장")
  • 모든 에러에대해 예외처리
try:
    print(10 / 0)
except ZeroDivisionError as e:
    # print(e.__str__)
    print("0으로 나눌 수 없습니다.")
  • 특정에러(ZeroDivisionError)에 대한 예외처리

내가 만든 사용자예외

class NickNameError(Exception):
    pass

def checkNickName(name):
    if name == "바보":
        raise NickNameError
        
nickname = input("닉네임 : ")

try :
    checkNickName(nickname)
    print("닉네임 생성 성공!")

except NickNameError :
    print("비속어는 사용할 수 없습니다.")

image

내가 만든 예외처리 2

=============================================================================

  1. 외부에서 채팅 문자열을 받아와서 in으로 비속어 검사를 한다.
  2. 비속어는 바보, 멍청이, 똥개이다.
  3. 사용자 예외처리로 선언하여 만든다.
  4. 비속어가 없다면 채팅 메세지를 출력한다.

    ```py class BadWordError(Exception): pass

chat = “”

def checkChatting(temp) : badWords = [“바보”, “멍청”, “똥개”] for i in badWords: if i in temp : global chat chat = temp.replace(i, “**”) raise BadWordError() cnt = 0 while True: chat = input(“채팅[나가기:q] : “) if chat.lower() == ‘q’: break

try:
    checkChatting(chat)
    print(chat)
except BadWordError:
    cnt += 1
    print("%d회 비속어를 사용하셨습니다." %cnt)
    print(chat) ```

image

댓글남기기