Exception
詳細
- 例外は,Exception[{tag1,tag2,…},data]形式のException形式のオブジェクトを構築する.ここで,{tag1,…}は例外の型を表す.data は詳細を含む連想である.
- 次は,spec の可能な形である.
-
タグ 例外タグを表す文字列またはシンボル {タグ1,タグ2,…} 複数の例外タグからなるリスト Exception[…] 有効なExceptionオブジェクト <|…|> 完全な例外データを含む連想 - もし spec がタグまたはタグのリストなら,各タグは,そのすべての親タグとともに,例外の結果として得られるタグリストに追加される.例外処理の文脈では,この過程はタグ展開と呼ばれる.
- payload は任意のWolfram言語式でよい.最も一般的なものは連想である.
- もし spec が連想なら,有効となるために以下のキーの少なくとも1つを含む必要がある.
-
"ExceptionTagList" 例外タグの完全に展開されたリスト "ExceptionTag" 主要な例外タグ - もし payload が連想配列なら,それに含まれるデータは,構築された例外データに追加される.
- payload が任意の式なら,それは構築された例外データに"ExceptionPayload"payload として追加される.
- Exception[…]["prop"]は,Exceptionオブジェクトから属性を抽出する.Exception[…][{key1,key2,…}]は値のリストを抽出する.
- Exception[…]["Properties"]は,使用可能な特性のリストを返す.
例題
すべて開く すべて閉じる例 (2)
文字列タグがあって追加情報はないExceptionオブジェクトを作成する:
Exception["DataConsistencyError"]文字列タグと追加情報があるExceptionオブジェクトを作成する:
Exception["DataConsistencyError", <|"Data" -> 42|>]記号タグがあるExceptionオブジェクトを作成する:
Exception[ArgumentError, <|"SomeKey" -> "SomeValue"|>]文字列タグと一般的な式がペイロードとしてあるExceptionオブジェクトを作成する:
Exception["InvalidExpression", a + b]結果のExceptionオブジェクトのInputForm を調べることができる:
Exception["InvalidExpression", a + b]//InputFormスコープ (8)
未登録の例外型を使う (1)
RegisterExceptionType[ArgumentTypeError, ArgumentError]以下は,登録タグを持つExceptionオブジェクトを構築する:
Exception[ArgumentTypeError, <|"InvalidArgumentValue" -> Pi, "ExpectedArgumentType" -> Integer|>]以下は,2つの例外型を持つ.よりエキゾチックなExceptionオブジェクトを作成する:T
Exception[{"UnknownError", ArgumentTypeError}]以下は,ArgumentTypeError例外型の登録を解除する:
Unprotect[ArgumentTypeError]
DeleteObject[ArgumentTypeError]特性 (1)
RegisterExceptionType[ArgumentTypeError, ArgumentError]次は,登録されたタグを持つExceptionオブジェクトを構築する:
exc = Exception[ArgumentTypeError, <|"InvalidArgumentValue" -> Pi, "ExpectedArgumentType" -> Integer|>]exc["Properties"]exc["ExceptionTag"]exc["ExceptionTagList"]exc[{"InvalidArgumentValue", "ExpectedArgumentType"}]exc["ExceptionData"]Exception[exc["ExceptionData"]]次は,ArgumentTypeError 例外型の登録を外す:
Unprotect[ArgumentTypeError]
DeleteObject[ArgumentTypeError]メッセージ情報の組込み (1)
Exception["ArgumentError", <|"MessageTemplate" -> "Argument number `` has the wrong type", "MessageParameters" -> {2}|>]既存のシンボルのメッセージを使ってExceptionオブジェクトを作成することができる:
Exception["DivisionByZero", <|"MessageTemplate" :> Power::infy, "MessageParameters" -> {HoldForm[1 / 0]}|>]失敗オブジェクトへの変換 (3)
次はExceptionを作成する:
exc = Exception[ArgumentErrorException, <|"Data" -> 42|>]次は,上記をFailureに変換する.デフォルトで,変換対象となる例外の主要タグを直接文字列化することによって,結果として得られるFailureオブジェクトの文字列タグが取得される:
exc["ExceptionFailure"]Exception[exc["ExceptionFailure"]]次は,Failureオブジェクトへ変換する際に使用するタグを指定してExceptionを作成する:
exc = Exception[ArgumentErrorException, <|"Data" -> 42, "ExceptionFailureTag" -> "ArgumentError"|>]次は,結果のFailureオブジェクトに指定された文字列タグを使って,上記をFailureに変換する:
exc["ExceptionFailure"]次は,Failureオブジェクトを作成する:
Failure["GenericError", <|"ExceptionTagList" -> {GenericException}|>]このFailureオブジェクトは例外タグ("ExceptionTagList"特性)に関する情報を含むため,Exceptionに直接変換できる:
Exception[Failure["GenericError", <|"ExceptionTagList" -> {GenericException}|>]]例外データからの低レベルの構造物 (1)
次は,Exceptionオブジェクトを,そのデータを含む連想から構築する:
Exception[<|"ExceptionTagList" -> {ArgumentError}, "InvalidArgumentValue" -> Pi, "ExpectedArgumentType" -> Integer|>]この構築モードでは,"ExceptionTag"または"ExceptionTagList"のキーの少なくとも一つが存在する必要がある点に注意のこと.
既存の例外からの新たな例外オブジェクトの構築 (1)
Exceptionコントラクタはベキ等である:
Exception[Exception["DataConsistencyError", <|"Data" -> 42|>]]ペイロードとして追加のデータが渡される場合,そのデータは付加される:
Exception[Exception["DataConsistencyError", <|"Data" -> 42|>], <|"IntermediateFunction" -> func|>]追加データに,例外のデータに既に存在するキーと衝突するキーが含まれている場合,そのデータは上書きされる:
Exception[Exception["DataConsistencyError", <|"Data" -> 42|>], <|"IntermediateFunction" -> func, "Data" -> 100|>]しかし,追加データには,"ExceptionTagList"や"ExceptionTag"のようなシステムキーは含まれてはならない:
Exception[Exception["DataConsistencyError", <|"Data" -> 42|>], <|"IntermediateFunction" -> func, "Data" -> 100, "ExceptionTagList" -> {"NewTag"}|>]テクニカルノート
-
▪
- 例外の処理
関連するガイド
-
▪
- フロー制御 ▪
- パッケージの保護 ▪
- ロバスト性とエラー処理
テキスト
Wolfram Research (2026), Exception, Wolfram言語関数, https://reference.wolfram.com/language/ref/Exception.html.
CMS
Wolfram Language. 2026. "Exception." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/Exception.html.
APA
Wolfram Language. (2026). Exception. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Exception.html
BibTeX
@misc{reference.wolfram_2026_exception, author="Wolfram Research", title="{Exception}", year="2026", howpublished="\url{https://reference.wolfram.com/language/ref/Exception.html}", note=[Accessed: 21-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_exception, organization={Wolfram Research}, title={Exception}, year={2026}, url={https://reference.wolfram.com/language/ref/Exception.html}, note=[Accessed: 21-September-2026]}