#SyntaxError?Exception?
Syntax Error
- 書いたscript
に問題有り
Exception
/ value error
- user
もしくはuser input
に問題有り
##エラー対応策
Exception
はつきもの。全てのユーザーが必ずしもこちらが指定したルールを守ってくれるとは限らない。のでwhile True:
とtry
を使って適当な対応策を作ってみる。
while True:
try:
number = int(input("what is your favorite number?"))
print(18/number)
break
except valueError: #これでプログラムがErrorを吐かずにすむ
print("Make sure you enter number")
Zero division Error
- 何か数字を0で割った時に起こるエラー。
except Zerodivision Error:
print("Don't pick zero")
もしくはexcept: break
で問題が起きた瞬間に切っちゃうこともできるが問題の特定ができなくなるのであまり推奨はされていないようだ。
##追記
こちらでも似たようなエラーの対応策について触れていたので備忘録として追記。
def div42by(divideBy):
try:
return 42 / divideBy
except ZeroDivisionError:
print('Error: You tried to divide by zero.')
print(div42by)(2)) #21
print(div42by)(0)) #Error: You tried to divide by zero.
print('How many cats do you have?')
numCats = input()
try:
if int(numCats) >= 4:
print('that is a lot of cats')
else:
print('that is not that many cats')
except ValueError:
print('you did not enter a number')