メインコンテンツまでスキップ

モデルのエラーを取得する

モデルのエラーを取得する

モデルに対するエラーはIModelオブジェクトのErrorsプロパティで取得できます。また、エラーがあるかどうかはIModelオブジェクトのHasErrorプロパティ、子要素も含めてエラーがあるかどうかは、IModelオブジェクトのHasErrorWithChildrenプロパティを用います。

public void GetErrors(ICommandContext c, ICommandParams p)
{
IModel model = c.App.Workspace.CurrentModel;

// エラーがある場合
if ( model.HasError )
{
// エラーメッセージを出力します
foreach ( IError error in model.Errors )
{
c.App.Output.WriteLine("sample", $"Error: {error.Message}");
}
}
}

すべてのエラーを取得する

現在のすべてのエラーを取得するには、IApplicationオブジェクトのErrorsプロパティを用います。

public void ListErrors(ICommandContext c, ICommandParams p)
{
IErrors errors = c.App.Errors;

// すべてのエラーにアクセスできます
foreach ( var error in errors.AllErrors)
{
c.App.Output.WriteLine("sample", $"Error: {error.Message}");
}
}

特定の種類のエラーを取得する

特定の種類のエラーを取得するには、IErrorsオブジェクトの各種プロパティを用います。使用できるプロパティは以下です。型はすべてエラーのコレクション(IErrorCollection)です。

  • AllErrors:すべてのエラー情報を取得します。
  • Errors:エラー種別が"エラー"のエラー情報を取得します。
  • Warnings:エラー種別が"警告"のエラー情報を取得します。
  • Informations:エラー種別が"情報"のエラー情報を取得します。
  • Summaries:エラー種別が"サマリ"のエラー情報を取得します。

public void ListErrors(ICommandContext c, ICommandParams p)
{
IErrors errors = c.App.Errors;

// 警告なども含むすべての情報を取得します
var allErrors = errors.AllErrors;

// typeがエラーの情報のみを取得します
var onlyErrors = errors.Errors;

// typeが警告の情報のみを取得します
var onlyWarnings = errors.Warnings;
}