最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

error

エラーのスローとメッセージの表示

説明

error(msg) はエラーをスローし、エラー メッセージを表示します。

error(msg,A1,...,An) は、MATLAB® 関数 sprintf で使用されるような書式変換文字を含むエラー メッセージを表示します。msg 内の個々の変換文字は、値 A1,...,An の 1 つに変換されます。

error(msgID,___) は、例外発生時のエラー識別子を含みます。識別子により、エラーを区別し、MATLAB でエラーが発生したときの動作を制御することができます。前述の構文のいずれかの入力引数を含めることができます。

error(errorStruct) は、スカラー構造体のフィールドを使用してエラーをスローします。

すべて折りたたむ

msg = 'Error occurred.';
error(msg)
Error occurred.

改行を含む書式付きエラー メッセージをスローします。エラー メッセージ内の特殊文字 (\n など) を MATLAB で変換する場合、error に複数の入力引数を指定しなければなりません。エラー メッセージに、変数 n のクラスに関する情報を含めます。

n = 7;
if ~ischar(n)
   error('Error. \nInput must be a char, not a %s.',class(n))
end
Error.
Input must be a char, not a double.

error で入力引数を 1 つのみ使用した場合、MATLAB は \n を改行に変換しません。

if ~ischar(n)
   error('Error. \nInput must be a char.')
end
Error. \nInput must be a char.

識別子を含むエラーをスローします。

if ~ischar(n)
   error('MyComponent:incorrectType',...
       'Error. \nInput must be a char, not a %s.',class(n))
end
Error.
Input must be a char, not a double.

MException.last を使用して、最新のキャッチされていない例外を表示します。

exception = MException.last
exception = 

  MException with properties:

    identifier: 'MyComponent:incorrectType'
       message: 'Error. 
Input must be a char, not a double.'
         cause: {0x1 cell}
         stack: [0x1 struct]

メッセージと識別子のフィールドをもつ構造体を作成します。例を単純にするために、スタック フィールドは使用しません。

errorStruct.message = 'Data file not found.';
errorStruct.identifier = 'MyFunction:fileNotFound';
errorStruct = 

       message: 'Data file not found.'
    identifier: 'MyFunction:fileNotFound'

エラーをスローします。

error(errorStruct)
Data file not found.

入力引数

すべて折りたたむ

エラーに関する情報。文字ベクトルまたは string スカラーとして指定します。このメッセージは、エラー メッセージとして表示されます。メッセージの書式を設定するには、\t\n などのエスケープ シーケンスを使用します。関数 sprintf によってサポートされる %s%d などの書式指定子も使用できます。A1,...,An 入力引数を介して変換指定子の値を指定します。詳細については、テキストの書式設定を参照してください。

メモ

エラー メッセージ内の特殊文字 (\t\n%s%d など) を MATLAB で変換する場合、error に複数の入力引数を指定しなければなりません。

例: 'File not found.'

エラーの識別子。文字ベクトルまたは string スカラーとして指定します。エラー識別子を使用すると、エラー原因を特定したり、選択したエラーのサブセットをプログラム内で制御することができます。

エラー識別子には component および mnemonic が含まれます。識別子は必ずコロンを含まなければならず、component:mnemonic というシンプルな形式に従います。component フィールドおよび mnemonic フィールドはそれぞれ、英字で始まっていなければなりません。残りの文字には英数字 (A ~ Z、a ~ z、0 ~ 9) とアンダースコアを使用できます。msgID に空白文字を含めることはできません。詳細については、メッセージ識別子を参照してください。

例: 'MATLAB:singularMatrix'

例: 'MATLAB:narginchk:notEnoughInputs'

msg 内の変換指定子と置き換える値。文字ベクトル、string スカラー、または数値スカラーとして指定します。

エラーが報告する情報。スカラー構造体として指定します。この構造体は、少なくとも次のフィールドのいずれかを含まなければなりません。

message

エラー メッセージ。詳細については、msg を参照してください。

identifier

エラー メッセージ識別子。詳細については、msgID を参照してください。

stack

エラーのスタック フィールド。errorStructstack フィールドが含まれる場合、error はそのフィールドを使用してエラーのスタック フィールドを設定します。stack を指定する際は、絶対ファイル名と、スタック フレームで関数を入れ子にする関数の全体のシーケンスを使用します。この文字ベクトルは、dbstack('-completenames') で返されるものと同じです。

ヒント

  • エラーをスローすると、MATLAB がそのエラーの情報を取得し、MException クラスのオブジェクトであるデータ構造に格納します。この例外オブジェクト内の情報には try/catch を使用してアクセスできます。また、例外によりプログラムが終了し、制御をコマンド プロンプトに返した場合は、MException.last を使用できます。

  • try ブロック内でエラーが発生しても、MATLAB はプログラムの実行を停止しません。この場合、MATLAB は制御を catch ブロックに渡します。

  • error へのすべての入力が空である場合、MATLAB はエラーをスローしません。

拡張機能

GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。

R2006a より前に導入