「レイズ」の正式な定義を読みましたが、それが何をするのかまだよくわかりません。
「上げる」とは、簡単に言うと?
使用例が役立ちます。
それには2つの目的があります。
独自のエラーを発生させるために使用されます。
if something:
raise Exception('My error!')
2 つ目は、例外ハンドラーで現在の例外を再発生させて、コール スタックのさらに上で処理できるようにすることです。
try:
generate_exception()
except SomeException as e:
if not can_handle(e):
raise
handle_exception(e)
raise
引数なしは、Python 構文の特別な使用法です。これは、例外を取得して再発生させることを意味します。この用法なら と呼ばれていたかもしれませんreraise
。
raise
式が存在しない場合、raise は現在のスコープでアクティブだった最後の例外を再発生させます。
引数なしで単独で使用される場合raise
は、厳密にreraise -ing に使用されます。別の例外が再発生していない状況で実行すると、次のエラーが表示されます。
RuntimeError: No active exception to reraise
これを使用して、エラー チェックの一部としてエラーを発生させることができます。
if (a < b):
raise ValueError()
または、いくつかのエラーを処理してから、エラー処理の一部としてそれらを渡します。
try:
f = open('file.txt', 'r')
except IOError:
# do some processing here
# and then pass the error on
raise
raise
例外が発生します。他のいくつかの言語では、代わりに動詞「throw」を使用します。
これは、エラー状況を通知することを目的としています。これは、状況が通常のフローとは異なることを示しています。
発生した例外は、コード'upstream'(周囲のブロック、またはスタックの前の関数)によって再度キャッチされ、、の組み合わせを使用して処理されtry
ますexcept
。