pythonのraiseについて調べたのですがいまいち感覚がつかめません
python
1# -*- coding: utf-8 -*- 2 3class Test(object): 4 def __init__(self, *name): 5 self.name = name 6 7 def plus(self): 8 try: 9 s = 0 10 for i in range(len(self.name)): 11 s += self.name[i] 12 if s >= 20: 13 raise TypeError('type-err desu!') 14 else: 15 return print(s) 16 17 except Exception as e: 18 print(type(e)) 19 20i = Test(2, 3, 5, 10) 21i.plus()
こんな感じでテキトウに書いてみて、print(type(e))でeにはraiseしたTypeErrorが入っていることが分かりました。
ただ、raiseについて解説されているサイトをみると、
python
1# -*- coding: utf-8 -*- 2 3class Test(object): 4 def __init__(self, *name): 5 self.name = name 6 7 def plus(self): 8 try: 9 s = 0 10 for i in range(len(self.name)): 11 s += self.name[i] 12 if s >= 20: 13 raise TypeError('type_err desu!') 14 else: 15 return print(s) 16 17 except Exception as e: 18 print(type(e)) 19 raise 20 21i = Test(2, 3, 5, 10) 22i.plus()
こんな感じでexcept:の中に「raise」と書かれているものを目にします。これは一体なんなのですか?自分で色々試してみたのですが、いまいち何をしているのか分かりませんでした
raiseは何をしているんですか?
また、raise ???Error("hogehoge")と書かれたもの、単にraiseと書かれたコードがtry:の中にあったり、except:の中にあったりするのですが、これは一体...
また、
- raiseは意図的に例外を発生させるためのもの
という認識でいいのでしょうか?

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。