
์ฐ๋ฆฌ๊ฐ python์ ํตํด ์ฝ๋๋ฅผ ์์ฑํ๋ค ๋ณด๋ฉด ์๋ง์ Error๋ฅผ ๋ง๋๊ฒ ๋๋ค.
๊ทธ๋ Error๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๋๋ก ํ์.
try:
์์ธ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์๋ ์ฝ๋
except:
์์ธ๊ฐ ๋ฐ์ํ์ ๋ ์คํํ ์ฝ๋
def division():
try:
num1 = int(input("์ฒซ๋ฒ์งธ ์ ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์ > "))
num2 = int(input("๋๋ฒ์งธ ์ ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์ > "))
return print(f"{num1}์ {num2}๋ก ๋๋ ๊ฐ์ {num1/num2}์
๋๋ค.")
except:
print("์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.")
division()
์ด๋ ๊ฒ ์คํํ ์ฝ๋๋ฅผ try๋ฌธ ์์ ๋ฃ๊ณ , ์์ธ๊ฐ ๋ฐ์ ์ ์ฒ๋ฆฌํ ์ฝ๋๋ฅผ except๋ฌธ์์ ๋ฃ์๋ค.
๊ทธ๋ฆฌ๊ณ ํจ์๋ฅผ ์คํํด 0์ ๋ฃ์ด์ ZeroDivisionError๋ ValueError๋ฅผ ๋ฐ์์ํค๋ฉด
์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.๋ผ๋ ๋ฉํธ๊ฐ ์ถ๋ ฅ์ด ๋๋ค.
๋ํ Error๋ฅผ ์ง์ ํด์ ํด๋น Error๊ฐ ๋ฐ์ ์ ์ถ๋ ฅ๋๋ ๋ฌธ๊ตฌ๋ฅผ ๊ฐ๊ฐ ์ง์ ํด์ค ์๋ ์๋ค.
def division():
try:
num1 = int(input("์ฒซ๋ฒ์งธ ์ ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์ > "))
num2 = int(input("๋๋ฒ์งธ ์ ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์ > "))
return print(f"{num1}์ {num2}๋ก ๋๋ ๊ฐ์ {num1/num2}์
๋๋ค.")
except ValueError:
print("์ซ์๋ก ๋ ์ ์๋ฅผ ๋ฃ์ด์ฃผ์ธ์.")
except ZeroDivisionError:
print("0์ ๋๋์ ์์ต๋๋ค.")
except KeyboardInterrupt:
print("๋ค๋ฅธ ํค๋ฅผ ์
๋ ฅํ์ง๋ง์ธ์.")
์ด๋ ๊ฒ ์๋ฌ๋ง๋ค ๊ฐ๊ฐ ์ถ๋ ฅํ ๋ฌธ๊ตฌ๋ฅผ ์ง์ ํด์ค์ ์๋ค.
๋ํ ์ด๋ค ์๋ฌ๊ฐ ๋ฐ์ํ๋์ง ์ถ๋ ฅ๋ ๊ฐ๋ฅํ๋ค.
def division():
try:
num1 = int(input("์ฒซ๋ฒ์งธ ์ ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์ > "))
num2 = int(input("๋๋ฒ์งธ ์ ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์ > "))
return print(f"{num1}์ {num2}๋ก ๋๋ ๊ฐ์ {num1/num2}์
๋๋ค.")
except Exception as e:
print(e)
์ด๋ ๊ฒ ํด์ ์๋ฌ๋ฅผ ๋ฐ์์ํค๋ฉด ์ด๋ค ์๋ฌ์ธ์ง์ ๋ํ ๊ฒ์ด ์ถ๋ ฅ์ด ๋๋ค.
๊ทธ๋ฆฌ๊ณ , ์์ธ ์ฒ๋ฆฌ์์๋ else๋ฌธ์ ์ฌ์ฉํ ์ ์๋ค.
def division():
try:
num1 = int(input("์ฒซ๋ฒ์งธ ์ ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์ > "))
num2 = int(input("๋๋ฒ์งธ ์ ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์ > "))
result = num1 / num2
except Exception :
print("์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.")
else:
print("์ ์์ ์ผ๋ก ๋๋๊ธฐ๊ฐ ์ถ๋ ฅ๋์์ต๋๋ค.")
return print(f"{num1}์ {num2}๋ก ๋๋ ๊ฐ์ {result}์
๋๋ค.")
division()
์ด๋ ๊ฒ else๋ฌธ์ try๋ฌธ์์ ์์ธ๊ฐ ๋ฐ์ํ์ง ์๊ณ ์ฒ๋ฆฌ๋์์ ๊ฒฝ์ฐ
else๋ฌธ์ด ์คํ์ด ๋๋ค.
๋ํ finally๊ตฌ๋ฌธ๋ ์๋ค. finally๊ตฌ๋ฌธ์ ๋ฌด์กฐ๊ฑด ์คํ๋๋ ์ฝ๋์ด๋ค.
raise
raise๊ตฌ๋ฌธ์ ์ฌ์ฉ์๊ฐ ์ง์ ์์ธ๋ฅผ ๋ฐ์์ํค๋ ๊ตฌ๋ฌธ์ด๋ค.
#ํ์ฅ์ค์ด ๋๋ฌด ๊ธํ๋จ์
class Toilet:
def __init__(self):
self.using = False
def in_use(self):
if self.using == False:
print("ํ์ฅ์ค์ ์ฌ์ฉํฉ๋๋ค.")
self.using = True
else:
raise Exception("์์ ์ฌ๋์ด ์์ต๋๋ค. ์ ์ ๊ธฐ๋ค๋ ค์ฃผ์ธ์.")
def not_in_use(self):
self.using = False
print("์์ ์ฌ๋์ด ์์ต๋๋ค.")
man = Toilet()
while True:
use = input("ํ์ฅ์ค์ ์ฌ์ฉํ์๊ฒ ์ต๋๊น?(y/n)")
try:
if use == "y":
man.in_use()
else:
man.not_in_use()
except Exception as e:
print(e)
์ ์ฝ๋๋ฅผ ์คํ ์ ํ์ฅ์ค์ ์ฌ์ฉํ ๊ฑด์ง์ ๋ํ ์ฝ๋๊ฐ ์คํ๋๋ค.
์ฌ๊ธฐ์ y๋ฅผ ์ ๋ ฅํ๋ฉด ํ์ฅ์ค์ ์ฌ์ฉํ๋ค๋ ๋ฌธ๊ตฌ๊ฐ ์ถ๋ ฅ์ด ๋๊ณ ,
ํ ๋ฒ ๋ y๋ฅผ ์ ๋ ฅํ๋ฉด ์์ ์ฌ๋์ด ์๋ค๋ ๋ฌธ๊ตฌ๊ฐ ์ถ๋ ฅ์ด ๋๋ค.
์ด๊ฒ์ y๋ฅผ ์ ๋ ฅ ์ boolํ์ ์ using์ด True๋ก ๋ณ๊ฒฝ์ด ๋๊ณ ,
ํ ๋ฒ ๋ y๋ฅผ ์ ๋ ฅ ์ ์กฐ๊ฑด๋ฌธ์ด ๊ฑฐ์ง์ด ๋๊ธฐ ๋๋ฌธ์, else๋ฌธ์ ๋ง๋๊ฒ ๋๋ค.
else๋ฌธ์์ ์์ ์ฌ๋์ด ์๋๋ฐ๋ ๋ถ๊ตฌํ๊ณ ํ์ฅ์ค์ ์ฌ์ฉํ ์ ์๋ค๋ฉด ๊ทธ๊ฑด ๋ ผ๋ฆฌ์ ์ธ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์,
raise๊ตฌ๋ฌธ์ ํตํด ์์ธ๋ฅผ ๋ฐ์์์ผฐ๋ค.
์ฆ์จ, ํจ์ ์์ฒด์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒ์ด ์๋, ์์ธ๋ฅผ ๋ ๋๊ธด ๊ฒ๊ณผ ๊ฐ๋ค.
'๐จ๏ธ Backend > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Python]๊ฐ์ฒด (0) | 2022.09.03 |
|---|---|
| [Python]์ง์ญ๋ณ์ , ์ ์ญ๋ณ์ , ๋งค๊ฐ๋ณ์ (0) | 2022.09.02 |
| [Python]ํจ์ (0) | 2022.09.02 |
| [Python]for๋ฐ๋ณต๋ฌธ (0) | 2022.09.02 |
| [Python]while ๊ตฌ๋ฌธ ๋ฐ rangeํจ์ (0) | 2022.09.01 |