モデルのエラーを取得する
モデルのエラーを取得する
モデルに対するエラーは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;
}