ドキュメンテーション センター

  • 評価版
  • 製品アップデート

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

警告とエラーの表示

警告の表示

警告を表示してプログラムの実行時に検知された予期せぬ状態を知らせることができます。関数 warning は、警告メッセージをコマンド ラインに表示します。警告とエラーは、2 つの点で大きく異なります。

  • 警告によってプログラムの実行が停止されることはありません。

  • 不要な MATLAB® 警告を非表示にできます。

コードに関数 warning を使用することで、実行中に警告メッセージを生成できます。メッセージ文字列を関数 warning への入力引数として指定します。

warning('Input must be a string')

たとえば、警告をコードに挿入してソフトウェアのバージョンを確認できます。

function warningExample1
  if ~strncmp(version, '7', 1)
    warning('You are using a version other than v7')
  end

エラーのスロー

エラーをスローしてプログラム内の致命的な問題を知らせることができます。関数 error を使って、エラー メッセージをコマンド ラインに表示します。メッセージの表示後、MATLAB は現在のプログラムの実行を停止します。

たとえば、n 個の要素の中から k 個の要素の組み合わせの数を返す関数を作成するとします。このような関数は k > n となると無意味です。4 つの要素から 8 つは選択できません。この事実を関数に組み込み、combinations を使用する人にこの問題を知らせなければなりません。

function com = combinations(n,k)
    if k > n
        error('Cannot calculate with given values')
    end
    com = factorial(n)/(factorial(k)*factorial(n-k));
end

関数 combinations が無効な入力を受け取ると、MATLAB はエラー メッセージをスローした後、すぐに実行を停止します。

combinations(4,8)
Error using combinations (line 3)
Cannot calculate with given values

警告およびエラーへの実行時パラメーターの追加

警告またはエラー メッセージで詳細を特定できるように、実行時にメッセージ文字列のコンポーネントを挿入します。関数 warning は、関数 sprintf が使用するのと同じ "変換文字" を使用します。変換文字は、コードが実行されるまで不明な部分文字列または値のプレースホルダーとして動作します。

たとえば、この警告は %s%d を使って変数 arrayname および arraydims の値を挿入する場所をマークします。

warning('Array %s has %d dimensions.',arrayname,arraydims)

このコマンドを arrayname = 'A' および arraydims = 3 で実行すると、MATLAB は次のように応答します。

Warning: Array A has 3 dimensions.

実行時パラメーターを警告とエラーに追加することにより、プログラム内の問題が明確になります。「エラーのスロー」の説明にあった関数 combinations を考えてみましょう。実行時パラメーターを使用して、より情報度の高いエラーをスローできます。

function com = combinations(n,k)
    if k > n
        error('Cannot choose %i from %i elements',k,n)
    end
    com = factorial(n)/(factorial(k)*factorial(n-k));
end

この関数が無効な引数を受け取ると、MATLAB はエラー メッセージをスローしてプログラムを停止します。

combinations(6,9)
Error using combinations (line 3)
Cannot choose 9 from 6 elements

警告およびエラーへの識別子の追加

メッセージ識別子は、警告またはエラーを一意に参照する方法を提供します。

識別子で警告を有効または無効にします。関数 warning で文字列を識別する引数を使用して、メッセージに一意のタグを付けます。

warning(identifier_string,message_string)

たとえば、実行中のソフトウェアのバージョンについての前出の MATLAB 警告に識別子のタグを追加できます。

minver = '7';
if ~strncmp(version,minver,1)
  warning('MYTEST:VERCHK','Running a version other than v%s',minver)
end

識別子をエラー メッセージに追加すると否定的なテストを行うことができます。ただし、エラーに対する情報を追加したりエラーから回復するには、一般的には MException オブジェクトを操作することが必要になります。

参考

| | |

関連する例

詳細

この情報は役に立ちましたか?