Python의 예외처리 (try~except) 하기
try:
a= int(input('int1'))
b= int(input('int2'))
print('a/b=',a/b)
a=[1,2]
print(a[3])
except Exception as e:
pass # 특정 에러발생할 경우 통과
# 오류 회피하기
#finally 에러와 상관없이 무조건 실행하기 위한 키워드
finally:
print('무조건 실행하는 부분')
#예외를 강제로 발생시키는 경우
#raise 명령어를 사용한다.
def rsp(a,b):
str1 = ['R','S','P']
if a not in str1:
raise ValueError
if b not in str1:
raise ZeroDivisionError
try:
rsp('R','Se')
except ValueError:
print('Wrong value')
#반복문
#StopIteration
school ={'1':[1,2,3,4,5],
'2':[5,4,7,8,1]}
#7이 넘는 학새을 발견하면 반복을 종료
#예외 발생 시키기
#1,2 7이 넘는 학생이 존재한다.
try:
for num,stu in school.items():
for i in stu:
if i>7:
print(num,'exsist')
raise StopIteration
except StopIteration:
print('Termination with exception')
#사용자 예외 만들기
#프로그래머가 직접 예외를 만든다
#Exception클래스 (예외에 대한 클래스 부모)
#상속
class MyError(Exception):
def __init__(self,value):
self.value = value
def __str__(self):
return self.value
try:
raise MyError('Errormade')
except Exception as e:
print(e)
print(type(e))
#계좌
#accountNo : String
#ownerName : String
#balance : int
#deposit : 입금
#withdraw : 출금, 잔액이 부족하면 예외 발생
#checking_account
#cardNo : String
#pay() : 카드번호, 잔액이 부족하면 예외 처리
#예외 처리하는 클래스 먼저 생성
class MyExcept(Exception):
def __init__(self,value):
self.value = value
def __str__(self):
return value
class Account:
def __init__(self,no,name,bal):
self.no = no
self.name = name
self.bal = bal
def deposit(self,money):
self.balance += money
print('입금액>',self.balance)
def withdraw(self,money):
if(money > self.balance):
return 'no money'
else:
return self.balance -= money
class checking(Account):
def __init__(self,no,name,bal,cardno):
self.bal = bal
self.no = no
self.name = name
self.cardno = cardno
def pay(no,money):
if:
print('카드번호 또는 잔액 확인')
else:
return withdraw(money)
#main()
#raise 내가 만든 예외 발생(메시지)
a= checking()
#결제를 할 때 돈이 부족, 카드번호가 없는 경우 예외
a.pay()
#출금시 돈이 부족하다면 예외
a.withdraw()
try:
raise MyExcept()
#재고관리 클래스 : StockManager 클래스
#재고수량 변수 : stockNum
#재고수량 파악하여 수요보다 많으면 예외 발생 : subStock
class StockManager:
def __init__(self,stockNum):
self.stockNum = stockNum
def substock(self,amount):
if amount > self.stockNum:
print('재고부족')
else:
print('남은재고')
return self.stockNum -= amount
#main()
#예외처리클래스
stock = StockManager(1000):
print(stock.substock(100))
try:
a= int(input('int1'))
b= int(input('int2'))
print('a/b=',a/b)
a=[1,2]
print(a[3])
except Exception as e:
pass # 특정 에러발생할 경우 통과
# 오류 회피하기
#finally 에러와 상관없이 무조건 실행하기 위한 키워드
finally:
print('무조건 실행하는 부분')
#예외를 강제로 발생시키는 경우
#raise 명령어를 사용한다.
def rsp(a,b):
str1 = ['R','S','P']
if a not in str1:
raise ValueError
if b not in str1:
raise ZeroDivisionError
try:
rsp('R','Se')
except ValueError:
print('Wrong value')
#반복문
#StopIteration
school ={'1':[1,2,3,4,5],
'2':[5,4,7,8,1]}
#7이 넘는 학새을 발견하면 반복을 종료
#예외 발생 시키기
#1,2 7이 넘는 학생이 존재한다.
try:
for num,stu in school.items():
for i in stu:
if i>7:
print(num,'exsist')
raise StopIteration
except StopIteration:
print('Termination with exception')
#사용자 예외 만들기
#프로그래머가 직접 예외를 만든다
#Exception클래스 (예외에 대한 클래스 부모)
#상속
class MyError(Exception):
def __init__(self,value):
self.value = value
def __str__(self):
return self.value
try:
raise MyError('Errormade')
except Exception as e:
print(e)
print(type(e))
#계좌
#accountNo : String
#ownerName : String
#balance : int
#deposit : 입금
#withdraw : 출금, 잔액이 부족하면 예외 발생
#checking_account
#cardNo : String
#pay() : 카드번호, 잔액이 부족하면 예외 처리
#예외 처리하는 클래스 먼저 생성
class MyExcept(Exception):
def __init__(self,value):
self.value = value
def __str__(self):
return value
class Account:
def __init__(self,no,name,bal):
self.no = no
self.name = name
self.bal = bal
def deposit(self,money):
self.balance += money
print('입금액>',self.balance)
def withdraw(self,money):
if(money > self.balance):
return 'no money'
else:
return self.balance -= money
class checking(Account):
def __init__(self,no,name,bal,cardno):
self.bal = bal
self.no = no
self.name = name
self.cardno = cardno
def pay(no,money):
if:
print('카드번호 또는 잔액 확인')
else:
return withdraw(money)
#main()
#raise 내가 만든 예외 발생(메시지)
a= checking()
#결제를 할 때 돈이 부족, 카드번호가 없는 경우 예외
a.pay()
#출금시 돈이 부족하다면 예외
a.withdraw()
try:
raise MyExcept()
#재고관리 클래스 : StockManager 클래스
#재고수량 변수 : stockNum
#재고수량 파악하여 수요보다 많으면 예외 발생 : subStock
class StockManager:
def __init__(self,stockNum):
self.stockNum = stockNum
def substock(self,amount):
if amount > self.stockNum:
print('재고부족')
else:
print('남은재고')
return self.stockNum -= amount
#main()
#예외처리클래스
stock = StockManager(1000):
print(stock.substock(100))
댓글
댓글 쓰기