Pythonでは、エラーハンドリングは非常に重要な部分を占めています。特に、エラーの内容ごとに異なる処理を行う必要があります。この記事では、Pythonでの例外処理とエラーコードの活用について解説します。
カスタム例外クラスの作成
Pythonでは、Exception
クラスを継承してカスタム例外クラスを作成することができます。以下に、カスタム例外クラスの基本的な定義を示します。
class CustomExceptionBase(Exception):
STATUS_CODE: int = None
DEFAULT_MESSAGE: str = "デフォルトメッセージです"
def __init__(self, msg=None, *args, **kwargs):
if not msg:
msg = self.DEFAULT_MESSAGE
super().__init__(msg, *args, **kwargs)
このCustomExceptionBase
クラスは、Exception
クラスを継承しています。STATUS_CODE
とDEFAULT_MESSAGE
は、それぞれエラーコードとデフォルトのエラーメッセージを表します。
サブクラスの作成
次に、このCustomExceptionBase
クラスを継承して、具体的なエラーシチュエーションを表すサブクラスを作成します。以下に、タイムアウトエラーを表すTimeOutException
クラスの例を示します。
class TimeOutException(CustomExceptionBase):
STATUS_CODE = 403
DEFAULT_MESSAGE = "Time out error!!"
このTimeOutException
クラスでは、STATUS_CODE
を403
に、DEFAULT_MESSAGE
を"Time out error!!"
に設定しています。これにより、タイムアウトエラーが発生した場合には、ステータスコード403
とメッセージ"Time out error!!"
が出力されます。
例外の使用
最後に、これらのカスタム例外クラスを使用する方法を見てみましょう。
try:
# エラーが発生する可能性があるコード
...
except TimeOutException:
# タイムアウトエラーが発生した場合の処理
...
except CustomExceptionBase as e:
# その他のカスタム例外が発生した場合の処理
return {
"statusCode": e.STATUS_CODE,
"body": {
"message": str(e),
"headers": hogehoge,
}
}
このコードでは、try
ブロック内でエラーが発生した場合に、適切な例外処理が行われます。
以上がPythonでの例外処理とエラーコードの基本的な活用方法です。これらの知識を活用して、より堅牢なPythonコードを書くことができます。