モジュール java.xml
パッケージ org.xml.sax

インタフェースErrorHandler

既知のすべての実装クラス:
DefaultHandler, DefaultHandler2, HandlerBase, XMLFilterImpl

public interface ErrorHandler
SAXエラー・ハンドラの基本インタフェースです。

カスタム・エラー処理を実装する必要がある場合、SAXアプリケーションはこのインタフェースを実装し、setErrorHandlerメソッドを使用してXMLリーダーにインスタンスを登録する必要があります。 これで、パーサーはこのインタフェースを介してすべてのエラーおよび警告を報告するようになります。

警告: アプリケーションがErrorHandlerを登録していない場合、致命的なエラーでSAXParseExceptionがスローされることを除き、XML構文解析エラーは報告されません。 妥当性エラーを検出するには、error()呼出しを処理するErrorHandlerを登録する必要があります。

XML処理エラーの場合、SAXドライバは、例外がスローされる前にこのインタフェースを使用する必要があります。タイプの異なるエラーや警告の例外をスローするかどうかを決定するアプリケーションとそうでないアプリケーションがあります。 ただし、fatalErrorの呼出し後に、パーサーが追加のエラーを報告し続けることは義務付けられていません。 つまり、fatalErrorの報告後は、SAXドライバ・クラスが例外をスローすることがあります。 また、パーサーはXML以外のエラーに対して適切な例外をスローすることもあります。 たとえば、XMLReader.parse()は、エンティティまたはドキュメントにアクセスするエラーに対してIOExceptionをスローします。

導入されたバージョン:
1.4, SAX 1.0
関連項目:
XMLReader.setErrorHandler(org.xml.sax.ErrorHandler), SAXParseException
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    void error​(SAXParseException exception)
    回復可能なエラーの通知を受け取ります。
    void fatalError​(SAXParseException exception)
    リカバリ不可で致命的なエラーの通知を受け取ります。
    void warning​(SAXParseException exception)
    警告の通知を受け取ります。
  • メソッドの詳細

    • warning

      void warning​(SAXParseException exception) throws SAXException
      警告の通知を受け取ります。

      SAXパーサーはこのメソッドを使用して、XML勧告に定義されたエラーまたは致命的なエラー以外の条件を報告します。 デフォルトの動作では何も実行されません。

      SAXパーサーは、このメソッドの呼出し後も標準構文解析イベントを提供し続ける必要があります。これは、アプリケーションが文書処理を最後までできなければならないからです。

      フィルタは、このメソッドを使用してその他の非XML警告も報告できます。

      パラメータ:
      exception - SAX構文解析例外にカプセル化された警告情報。
      例外:
      SAXException - 任意のSAX例外。ほかの例外をラップしている可能性があります。
      関連項目:
      SAXParseException
    • error

      void error​(SAXParseException exception) throws SAXException
      回復可能なエラーの通知を受け取ります。

      これは、W3C XML 1.0勧告セクション1.2の「エラー」の定義に相当します。 たとえば、妥当性を検証するパーサーは、このコールバックを使用して妥当性制約違反を報告します。 デフォルトの動作では何も実行されません。

      SAXパーサーは、このメソッドの呼出し後も標準構文解析イベントを提供し続ける必要があります。これは、アプリケーションが文書処理を最後までできなければならないからです。 必須事項としてXML勧告に定義されているわけではありませんが、アプリケーションが文書処理を最後までできない場合、パーサーは致命的なエラーを報告します。

      フィルタは、このメソッドを使用してその他の非XMLエラーも報告できます。

      パラメータ:
      exception - SAX構文解析例外にカプセル化されたエラー情報。
      例外:
      SAXException - 任意のSAX例外。ほかの例外をラップしている可能性があります。
      関連項目:
      SAXParseException
    • fatalError

      void fatalError​(SAXParseException exception) throws SAXException
      リカバリ不可で致命的なエラーの通知を受け取ります。

      W3C XML 1.0推奨のセクション1.2で定義されているように、致命的なエラーが、パーサーが通常の処理を続行できなくなることがあります。 これには、W3C XML 1.0の推奨事項で説明されているように、整形式の制約違反、無効なエンコーディング、および禁止されている構造エラーが含まれます。

      APIのノート:
      アプリケーションでは、致命的エラーの報告後にパーサーが通常の処理を実行できなくなり、ContentHandler.endDocument()をコールせずにSAXExceptionをスローすることで停止する可能性があることを前提としています。 また、解析を再開できる場合でも、パーサーは残りのドキュメントの論理構造に関する正確な情報を返すことができないと予想されます。
      実装上のノート:
      このメソッドを呼び出すと、パーサーはSAXExceptionをスローして処理を停止するか、致命的なエラーの後に続行できるように機能を実装することができます。 後のケースでは、文書の残りの部分について、正確性が保証されずにイベントをレポートする場合があります。
      パラメータ:
      exception - SAXParseExceptionにカプセル化されたエラー情報。
      例外:
      SAXException - アプリケーションが解析を中止することを選択した場合