Main Content

mexSetTrapFlag (C および Fortran)

(削除済み) エラーに対する MEXCALLMATLAB の応答の制御

mexSetTrapFlag は削除されました。代わりに mexCallMATLABWithTrap を使用してください。詳細については、互換性についての考慮事項を参照してください。

C 構文

#include "mex.h"
void mexSetTrapFlag(int trapflag);

Fortran 構文

subroutine mexSetTrapFlag(trapflag)
integer*4 trapflag

引数

trapflag

制御フラグ。

  • 0 - エラーの場合は、制御が MATLAB® プロンプトに戻ります。

  • 1 - エラーの場合は、制御が MEX ファイルに戻ります。

説明

mexSetTrapFlag を呼び出して、mexCallMATLAB 内のエラーに対する MATLAB の応答を制御します。

mexSetTrapFlag を呼び出さない場合は、mexCallMATLAB への呼び出しで MATLAB がエラーを検出すると、MATLAB は自動的に MEX ファイルを終了し、制御を MATLAB プロンプトに戻します。trapflag0 に設定して mexSetTrapFlag を呼び出すことは、mexSetTrapFlag をまったく呼び出さないことと同じです。

mexSetTrapFlag を呼び出し、trapflag1 に設定した場合、MATLAB が mexCallMATLAB への呼び出しでエラーを検出しても、MATLAB は自動的に MEX ファイルを終了しません。代わりに、MATLAB は mexCallMATLAB を呼び出した直後に制御を MEX ファイル内の行に戻します。MEX ファイルはその後、エラーへの適切な応答を担当します。

mexSetTrapFlag を呼び出した場合、設定した trapflag の値は MEX ファイル内での mexSetTrapFlag の次の呼び出しまで有効になります。または、mexSetTrapFlag への呼び出しがこれ以上行われない場合は、MEX ファイルが終了するまで有効になります。MEX ファイルに定義されているルーチンが別の MEX ファイルを呼び出す場合、MATLAB は以下を行います。

  1. trapflag の現在の値を最初の MEX ファイルに保存します。

  2. そのファイル内で、0 に初期化された trapflag を使用して 2 番目の MEX ファイルを呼び出します。

  3. 2 番目の MEX ファイルが存在するときは、最初の MEX ファイル内に保存されている trapflag の値が復元されます。

バージョン履歴

R2008b で導入

すべて折りたたむ

R2018a: mexSetTrapFlag は削除されました。

関数 mexCallMATLABWithTrap は、mexCallMATLAB と同様に、MEX ファイル内から MATLAB 関数を呼び出すことができます。さらに、mexCallMATLABWithTrap ではエラーをキャッチ (トラップ) することもできます。この関数を例外処理に使用すると、mexCallMATLAB を関数 mexSetTrapFlag と共に使用するよりも柔軟性が高くなります。

mexSetTrapFlag で作成された既存の MEX ファイルは引き続き機能します。