Excel Services の警告
Excel Web Services は、Web サービス内で発生したエラーおよび Excel Calculation Services が返したエラーのアラートを公開します。
エラーは次の方法で公開されます。
Excel の計算エラーは、Excel での表示方法と同様に返されます。つまり、セル エラー値 (#VALUE! など) として返されます。 GetCell メソッドまたは GetRange メソッドを呼び出し、書式設定された値を要求すると、# スタイルのエラー文字列が取得されます。 書式設定されていない値を要求すると、列挙エラー コードが表示されます。 詳細については、このトピックの後半の 「エラー コード 」セクションを参照してください。
いずれかの Web サービス メソッドの処理中にエラーが発生した場合、メソッドが正常終了しないように、エラーが簡易オブジェクト アクセス プロトコル (SOAP) の例外として公開されます。 このエラーをコード内でキャッチできるとともに、キャッチする必要があります。 この種のエラーは "停止" アラートとも呼ばれます。
メソッドが通常の結果が返されるエラーは、メソッド引数の一部、具体的には出力引数として返されます。 この種のエラーは、致命的ではないエラーとみなされます。 エラーが例外ではなく出力引数として返される理由は、例外が発生すると、コードが通常の実行パスからそれてしまい、これは致命的ではないエラーの場合は望ましくないからです。 このようなエラーをチェックすることは省略可能です。 この種のエラーは "継続" アラートとも呼ばれます。
アラートの種類
アラートには、"停止" と "継続" の 2 種類があります。
"停止" アラート
"停止" アラートは、現在の操作を停止します。 つまり、ブックが現在の操作の実行前の状態にロールバックされます。 "停止" アラートは SOAP 例外として公開されます。
"継続" アラート
一般に、"継続" アラートは、警告または致命的でないエラーです。 Excel Calculation Services が "継続" アラートをスローしても、操作は続行します。 これらのアラートは、出力引数 (アラートのさまざまなフィールドを持つ構造体) として返されます。 詳細は、「 Microsoft.Office.Excel.Server.WebServices 名前空間」の「 Status クラス」参照トピックを参照してください。
例外のキャッチ
ユーザーが起こす可能性があることが分かっている Excel Calculation Services 固有のエラーをキャッチする必要があります。 たとえば、アプリケーションがユーザーにブックへのパスを入力してくださいというメッセージを表示する場合、ユーザーは正しくないパスを入力したり、存在しないブックを選択する可能性があります。 ユーザーが何を入力するかは制御すできませんが、ユーザーが意図せずにブックのファイル名を間違えて入力した際のユーザー エクスペリエンスは制御できます。
SOAP 例外 (つまり "停止" アラート) は、コード内でキャッチする必要があります。 "継続" アラートの場合は、呼び出し側コードはアラート情報を無視するか確認するかを選択することができます。
エラー コード
特定のエラー条件をキャッチできるようにするため、Excel Calculation Services アラートにはエラー コードが関連づけられます。 Web サービスは、 SoapException クラスからプロパティを使用してエラーを返します。
詳細は、Microsoft .NET Framework SDK ドキュメントの「SoapException クラス」トピックを参照してください。
例外処理
アプリケーション (つまり SOAP クライアント) が、サービスが処理できない要求を Web サービスに送信すると、サービスは SOAP 例外をクライアントに返します。 Excel Web Services によってスローされる例外の処理は、エラーが発生した際にユーザーに具体的な情報を返すことができるため、開発するアプリケーションの重要な部分です。 例外処理iは、アプリケーションで予期しないことが発生した場合のユーザー エクスペリエンスを改善する際に役立ちます。
例外処理に関する一般情報については、Microsoft .NET Framework SDK ドキュメントの「例外の処理とスロー」を参照してください。