私はPythonが初めてで、自己定義エラーの処理に苦労しています。私のコードがエラーを見つけたら、赤いフォントでエラーをスローし、Pythonを殺すことなくPythonターミナルに戻してほしい。
Sys.exit()に出会い、答えを探しましたが、Pythonを完全に終了しました。赤いフォントでエラーを返す代替手段を知っていますかandは端末に戻りますか?
これは私がこれまで持っているものです。
import sys
def do_something(parameter):
if parameter > 100:
# quit the function and any function(s) that may have called it
sys.exit('Your parameter should not be greater than 100!')
else:
# otherwise, carry on with the rest of the code
明確でない場合はお知らせください。詳細をお知らせいたします。よろしくお願いします!
(少なくとも)2つのオプションがあります。
return
ステートメントの使用:
def do_something(parameter):
if parameter > 100:
# display error message if necessary
return # 'exit' function and return to caller
# rest of the code
あなたもすることができます return soemthing
something
値を呼び出し元に返します。これは、たとえばステータスコードを提供するために使用できます(例:0:成功、1:エラー)。
または、より良いアプローチはraise
例外です:
def do_something(parameter):
if parameter > 100:
raise ValueError('Parameter should...')
# rest of the code
try:
do_something(101)
except ValueError, e:
# display error message if necessary e.g. print str(e)
Pythonマニュアルの exceptions を参照してください。
組み込みの例外クラスがあります(上記のValueError
など)。次のように独自に定義することもできます。
class ParameterError(Exception):
pass
また、カスタム例外クラスにコードを追加して、パラメーターを処理したり、カスタムエラーメッセージを表示したりすることもできます。
組み込みの例外は here にリストされています。
カスタム例外を定義し、発生させます。
class MyError(Exception):
pass
...
if parameter > 100:
# quit the function and any function(s) that may have called it
raise MyError('Your parameter should not be greater than 100!')
(実際には、今私はそれについて考えていますが、組み込み例外を使用することができます:ValueErrorが適切だと思われます)。