raise:意図的に例外を発生させる

def multi(a, b):
  if a == 0 or b == 0:
    raise ValueError
  return a * b

multi(10, 8)
try:
  multi(10, 0)
except ValueError:
  print(‘raise文で発生させた例外も例外処理できます’)

raiseを使うと、元々、pythonではValueErrorではないのに、ValueErrorに指定することが出来る。そこで、except構文を用いて、その原因を探ることが出来る。

raise ValueError(“メッセージ”, 引数1, 引数2)’

def multi(a, b):
  if a == 0 or b == 0:
    raise ValueError(“引数のどちらか、あるいは両方がゼロになっています”)
  return a * b

answer = multi(10, 8)
print(answer)
try:
  answer = multi(10, 0)
  print(answer)
except ValueError as e:
  print(e.args)
except as e: で、引数をe.argsで取り出すことが出来る。

コメント

タイトルとURLをコピーしました