Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Python3.x】ExceptionGroup::__new__()メソッドの使い方

__new__メソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

__new__メソッドは、Pythonの組み込み例外クラスであるExceptionGroupの新しいインスタンスを生成するメソッドです。ExceptionGroupは、複数の例外を一つのオブジェクトとしてまとめて扱うためにPython 3.11で導入されました。これは、非同期処理や並行処理において、複数のタスクがそれぞれ異なるエラーを発生させた場合に、それらのエラーを一元的に管理し、処理する際に特に有用です。

通常、Pythonでオブジェクトを生成する際には__init__メソッドが初期化を担当しますが、__new__メソッドはその__init__メソッドよりも先に呼び出され、実際にオブジェクトのメモリを確保し、そのインスタンスを構築するという、より根源的な役割を担います。したがって、__new__メソッドは、インスタンスの生成プロセスにおける最初のステップと言えます。

ExceptionGroupの__new__メソッドは、新しいExceptionGroupオブジェクトを作成する際に、必須となる2つの引数を受け取ります。1つ目は、この例外グループ全体を表す簡潔な文字列メッセージです。2つ目は、このグループに含まれる個々の例外オブジェクトのリストまたはタプルです。このメソッドは、これらの情報をもとに新しいExceptionGroupインスタンスを生成し、そのインスタンスを呼び出し元に返します。開発者はこの機能を利用することで、多数の例外が発生する複雑なシステムにおいても、それらを効率的に管理し、適切なエラーハンドリングを行うための基盤を構築できます。

構文(syntax)

1ExceptionGroup("エラーが発生しました", [ValueError("無効な値です"), TypeError("型が正しくありません")])

引数(parameters)

message: str, exceptions: Sequence[BaseException]

  • message: str: 例外グループに含める個々の例外を説明するメッセージ
  • exceptions: Sequence[BaseException]: この例外グループに含める個々の例外のシーケンス

戻り値(return)

ExceptionGroup

このメソッドは、新たに生成された ExceptionGroup オブジェクトを返します。

関連コンテンツ