次の方法で共有


PSClientError クラス

PSI メソッドの SOAP 例外に関する情報が含まれています。

継承階層

System.Object
  Microsoft.Office.Project.Server.Library.PSClientError

名前空間:  Microsoft.Office.Project.Server.Library
アセンブリ:  Microsoft.Office.Project.Server.Library (Microsoft.Office.Project.Server.Library.dll 内)

構文

'宣言
<SerializableAttribute> _
Public Class PSClientError _
    Implements ISerializable
'使用
Dim instance As PSClientError
[SerializableAttribute]
public class PSClientError : ISerializable

注釈

PSI メソッドを呼び出したときに例外が発生する場合、発生するすべてのエラーのリストを取得するには、SoapException オブジェクトを Microsoft.Office.Project.Server.Library.PSClientError クラス コンストラクタに渡します。続いて、次の例のように、GetAllErrors を使用すると PSErrorInfo 配列にエラー情報を格納し、エラーを列挙することができます。

注意

PSErrorInfoオブジェクトは、すべての情報が必要ない場合があります。たとえばを使用する場合Resource.CheckOutResourcesで一部のリソースは、既にチェック アウトされてPSErrorInfoをチェック アウトすることはできませんが、リソースの名前または GUID が含まれていないリソースごとに、失敗の理由を示します。多くの情報を取得する方法、 CheckOutResourcesを参照してください。

using System;
using System.Collections.Generic;
using System.Text;
using System.Web.Services.Protocols;
using System.Windows.Forms;
using PSLibrary = Microsoft.Office.Project.Server.Library;
. . .
try
{
    /* call a PSI method */
}
catch (SoapException ex)
{
    string errAttributeName;
    string errAttribute;
    string errMess = "".PadRight(30, '=') + "\r\n" + "Error: " + "\r\n";

    PSLibrary.PSClientError error = new PSLibrary.PSClientError(ex);
    PSLibrary.PSErrorInfo[] errors = error.GetAllErrors();
    PSLibrary.PSErrorInfo thisError;

    for (int i = 0; i < errors.Length; i++)
    {
        thisError = errors[i];
        errMess += "\n" + ex.Message.ToString() + "\r\n";
        errMess += "".PadRight(30, '=') + "\r\nPSCLientError Output:\r\n \r\n";
        errMess += thisError.ErrId.ToString() + "\n";

        for (int j = 0; j < thisError.ErrorAttributes.Length; j++)
        {
            errAttributeName = thisError.ErrorAttributeNames()[j];
            errAttribute = thisError.ErrorAttributes[j];
            errMess += "\r\n\t" + errAttributeName +
                       ": " + errAttribute;
        }
        errMess += "\r\n".PadRight(30, '=');
    }
    MessageBox.Show(errMess, "Error", MessageBoxButtons.OK,
        MessageBoxIcon.Error);
}

スレッド セーフ

この型のパブリック static (Visual Basic のShared ) メンバーはいずれもスレッド セーフです。インスタンス メンバーはスレッド セーフになるという保証はありません。

関連項目

参照先

PSClientError メンバー

Microsoft.Office.Project.Server.Library 名前空間

CheckOutResources

その他の技術情報

にする方法: プログラムを使用してサーバーにログオンする

Project Server 2013 エラー コード