JY-CONTENTS

JY

JY-CONTENTS
search

+

MENU

【Python】raiseステートメント

【Python】raiseステートメント

(DATE)

-

2016.11.21

(CATEGORY)

-

raise文を使うと、指定した例外を起こすことができます。
意図的にエラーを起こすことができます。

以下は、意図的にNameErrorを起こします。

raise NameError, ‘HiThere’ または raise NameError(‘HiThere’)

第1引数には、ひき起こすべき例外を指定し、第2引数ではその例外の引数を指定します。

下記は、hoge関数にて、エラー発生した時に「raise」を記述しているので、それが呼び出し元であるcall関数にも伝わり、「エラーを受け取りました」が表示されます。
「raise」を記述sいないとcall関数のexcept配下の処理が実行されない。

例題1

def hoge(val1,val2):
 
    result = 0
 
    try:
        result = val1 + val2
    except:
        print("計算失敗")
        raise
    finally:
        print("計算終了")
 
    return result
 
 
def call(list1,list2):
    try:
        print(hoge(list1[0],list2[0]))
        print(hoge(list1[1],list2[1]))
        print(hoge(list1[2],list2[2]))
    except:
        print("エラーを受け取りました")
 
 
if __name__ == "__main__":
    list1 = [100,200,300]
    list2 = [100,200,"300"]   #---300が数値でなく文字列---
 
    call(list1,list2)

計算終了
200計算終了
400計算失敗!
計算終了
エラーを受け取りましたよ

「raise」を実行すれば、エラー情報が出力され処理が止まる。
なので「raise」を「print(“計算失敗”)」の前に記述すればそこで処理は終了するので
「計算失敗」は表示されない。

計算終了
200計算終了
400計算終了
エラーを受け取りましたよ

例題2

def hoge(val1,val2):
 
    result = 0
 
    try:
        result = val1 + val2
        raise
    except:
        print('エラー')
 
    return result
 
 
print(hoge(2, 2))

エラー
4

NEW TOPICS

/ ニュー & アップデート

SEE ALSO

/ 似た記事を見る

JY CONTENTS UNIQUE BLOG

search-menu search-menu