python-21: 예외처리
예외 처리
- 에러 : 심각한 오류
- 예외 : 덜 심각한 오류
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("비속어는 사용할 수 없습니다.")
내가 만든 예외처리 2
=============================================================================
- 외부에서 채팅 문자열을 받아와서 in으로 비속어 검사를 한다.
- 비속어는 바보, 멍청이, 똥개이다.
- 사용자 예외처리로 선언하여 만든다.
-
비속어가 없다면 채팅 메세지를 출력한다.
```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) ```
댓글남기기