これまでのサンプルでは、エラー チェックについてあまり触れませんでした。サンプルならこれで構いませんが、実際のプラグインを作成する場合は、エラーをチェックする必要があります。
ほとんどのメソッドは、オプションの最終引数を取ります。この引数は、ステータスの戻り値が保存されている MStatus変数のポインタです。
らせんのサンプルで引数解析コードを以下のコードと置き換えると、ほとんどのエラーのチェックと処理が行われるようになります。
// Parse the arguments.
for ( i = 0; i < args.length(); i++ )
if ( MString( “-p” ) == args.asString( i, &stat )
&& MS::kSuccess == stat )
{
double tmp = args.asDouble( ++i, &stat );
// argument can be retrieved as a double
if ( MS::kSuccess == stat )
pitch = tmp;
}
else if ( MString( “-r” ) == args.asString( i, &stat )
&& MS::kSuccess == stat )
{
double tmp = args.asDouble( ++i, &stat );
// argument can be retrieved as a double
if ( MS::kSuccess == stat )
radius = tmp;
}
&stat を asString() メソッドと asDouble() メソッドに追加すると、キャスト操作が成功したかどうかをチェックできます。
たとえばインデックスが引数の数より大きい場合、args.asString(i, &stat) は MS::kFailure を返します。
引数を double に変換できない場合、args.asDouble(++i, &stat) はエラーになります。