try / catch 構文を利用することで、エラーが発生した際の処理を指定して実行させることができます。
try-catch 間には、実際に実行したい処理内容を記述します。また、catch-end 間には、try-catch 間でエラーが起こった場合に実行したい処理内容を記述しておきます。
また、try/catch 構文では、try-catch 間でエラーが起きても、自動的にはエラーメッセージが出力されないことに注意してください。エラー、ワーニングメッセージを取り出すには、以下のような関数を用います。
lasterror エラーメッセージとエラー識別子の出力
lastwarn ワーニングメッセージの出力
rethrow エラーの再発行
try/catch 構文を利用した MATLA ファイル例は以下になります。
clear all
try
x = 5;
y = x + a;
catch
msg = lasterr
a = 10;
y = x + a;
end
このプログラムは、try-catch 間に、未定義の変数 a があるため、エラーが発生します。しかし、エラーが発生しても、catch-end 間のコマンドが実行されますので、a に値が代入され、プログラムを最後まで実行することができます。
また、lasterr コマンドにより、発生したエラーメッセージが変数 msg として定義され、コマンドウィンドウに表示されるようにしています。