pythonのraise文について質問です。
try-except内にraise+クラス名+(引数)を書き込みexceptで引数を渡し、raiseで例外を送出するという一般的な方法に対し、下記のコードは関数のメソッドでraiseが組み込まれているタイプのコードがよく理解できません。
お忙しいところ恐縮ですがご教授いただけたら幸いです。
python
1class kusanagi(Exception): 2 pass 3 4def raise_character(a): 5 print("Saya's") 6 raise kusanagi 7 print("goofy") 8 9def func(name: int): 10 try:1 11 print(name, "is a") 12 raise_character(name) 13 except kusanagi: 14 print("reliable") 15 raise Exception 16 17name = "Magatama" 18 19try: 20 func(name) 21 22except Exception: 23 print("partner")
コード全体が例外に関する"一般的な使われ方"の説明のためのコードになっているように見えます。
> 関数のメソッドでraiseが組み込まれているタイプのコード
が具体的にどの行を指して言っているのか分かりませんでした。
"関数のメソッド"は意図が分からない(かつ元を想像できない)ので、何かを削るか足した方がいいかと思いました。
やはりそうですよね。
一番最初のtry文の:の後にある1は誤字ですが、それ以外に誤字はありません。
これはpython基礎認定試験の問題です。
正解することはできましたが、このコードが何をしようとしているのか分からなかったので質問させて頂きました。
早急のご回答ありがとうございました。
多分、指摘事項が通じてないような気がします。
python基礎認定試験に「関数のメソッド」とか「関数のメソッドでraiseが組み込まれている」と書いてあるということはないですよね?
これらは質問者さんの表現ではないでしょうか。そのあたりが伝わらないので、質問の意図(=質問者さんが聞きたいこと)が伝わってません。
このコードは"例外の振る舞いを説明するため"のコードだと思います。
申し訳ございません。
> 関数のメソッドでraiseが組み込まれているタイプのコード
が具体的にどの行を指して言っているのか分かりませんでした。
上記の文章を見落としていました。
> def raise_character(a):
print("Saya's")
raise kusanagi
print("goofy")
ここのdef関数についてです。
なんとなくは伝わってきましたが、"関数のメソッド"が意図不明なのがなんとも……。「床屋の美容院」とか「マンションのアパート」ぐらいのおかしさを感じる使い方です。(どうも「メソッド」を普通じゃない意味で使っている予感)
回答3件
あなたの回答
tips
プレビュー