エラー チェック
 
 
 

これまでのサンプルでは、エラー チェックについてあまり触れませんでした。サンプルならこれで構いませんが、実際のプラグインを作成する場合は、エラーをチェックする必要があります。

ほとんどのメソッドは、オプションの最終引数を取ります。この引数は、ステータスの戻り値が保存されている 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) はエラーになります。