SharePoint Foundation コマンドレットのエラー処理

最終更新日: 2009年10月1日

適用対象: SharePoint Foundation 2010

SharePoint Foundation のコマンドレットでは、基本的なエラー管理の機能を提供する必要があります。これは、コマンドレットによってエラーが発生しうるすべての状況を一覧にし、それぞれの状況について、想定される動作を記述する必要があることを意味します。コマンドレットは、エラーが発生したときには部分的な変更を撤回し、意味のあるエラー メッセージを返して、システム管理者の手によってどんなエラー状況からでも回復できる方法を明らかにする必要があります。とりわけ、致命的な (終了) エラーと致命的でない (非終了) エラーを区別できる必要があります。致命的なエラーとは、Windows PowerShell によるコマンドの処理を停止するエラーです。致命的なエラーによって、Windows PowerShell パイプラインの実行は終了します。非終了エラーでは、現在の入力オブジェクトやそれ以降に到着するパイプライン オブジェクトの操作を Windows PowerShell が続行できます。また、非終了エラーは、システムに回復の機会を提供します。

SharePoint のコマンドレットにおけるエラー処理

コマンドレットは、無効なプロパティ値を許容できる十分な回復力を備えている必要があります。Get コマンドレットでは、致命的な場合には終了エラーをスローする必要がありますが (たとえば、指定されたデータベースに接続できない場合)、無効なプロパティを持つオブジェクトについては非終了エラーとして処理して出力パイプラインに書き込む必要があります。

コマンドレットは、WriteError(Exception, ErrorCategory, Object) メソッドを使用して、すべての非終了エラーをレポートする必要があります。終了エラーについては、ローカライズされた例外をスローする必要があります。

終了エラーと非終了エラーのどちらであっても、ローカライズされたエラー文字列を使用すると共に、WriteError(Exception, ErrorCategory, Object) メソッドを使用したエラーのレポート時には現在のスレッドのロケールを使用する必要があります。

注意

Windows PowerShell のエラー レポート用 API は直接使用しないでください。代わりに、Microsoft.SharePoint.PowerShell 名前空間にある Windows PowerShell の SharePoint Foundation API を使用します。こうすることで、SharePoint 展開で動作するコマンドレット間の互換性が確保されます。SharePoint の API は、ネイティブの Windows PowerShell API の機能を実装していますが、ログ ファイルへのエラー データの書き込みなど、追加の作業の実行が重要になります。

関連項目

概念

SharePoint Foundation コマンドレットの開発ガイドライン

SharePoint 管理シェル用コマンドレットの作成に関する重要な概念