public interface ErrorHandler
このモジュールは、ソースコード、文書ともに公開ドメインに置かれています。したがって、内容に関する保証は一切提供されません。詳細については、http://www.saxproject.org を参照してください。
カスタムエラー処理を実装する必要がある場合、SAX アプリケーションはこのインタフェースを実装し、setErrorHandler
メソッドを使用して XML リーダーにインスタンスを登録する必要があります。これで、パーサーはこのインタフェースを介してすべてのエラーおよび警告を報告するようになります。
警告: アプリケーションが ErrorHandler を登録していない場合、致命的なエラーで SAXParseException がスローされることを除き、XML 構文解析エラーは報告されません。妥当性エラーを検出するには、error()
呼び出しを処理する ErrorHandler を登録する必要があります。
XML 処理エラーの場合、SAX ドライバは、例外がスローされる前にこのインタフェースを使用する必要があります。タイプの異なるエラーや警告の例外をスローするかどうかを決定するアプリケーションとそうでないアプリケーションがあります。ただし、fatalError
の呼び出し後に、パーサーが追加のエラーを報告し続けることは義務付けられていません。つまり、fatalError の報告後は、SAX ドライバクラスが例外をスローすることがあります。また、パーサーは XML 以外のエラーに対して適切な例外をスローすることもあります。たとえば、XMLReader.parse()
は、エンティティーまたはドキュメントにアクセスするエラーに対して IOException をスローします。
XMLReader.setErrorHandler(org.xml.sax.ErrorHandler)
, SAXParseException
修飾子と型 | メソッドと説明 |
---|---|
void |
error(SAXParseException exception)
回復可能なエラーの通知を受け取ります。
|
void |
fatalError(SAXParseException exception)
回復できないエラーの通知を受け取ります。
|
void |
warning(SAXParseException exception)
警告の通知を受け取ります。
|
void warning(SAXParseException exception) throws SAXException
SAX パーサーはこのメソッドを使用して、XML 勧告に定義されたエラーまたは致命的なエラー以外の条件を報告します。デフォルトの動作では何も実行されません。
SAX パーサーは、このメソッドの呼び出し後も標準構文解析イベントを提供し続ける必要があります。これは、アプリケーションが文書処理を最後までできなければならないからです。
フィルタは、このメソッドを使用してその他の非 XML 警告も報告できます。
exception
- SAX 構文解析例外にカプセル化された警告情報。SAXException
- 任意の SAX 例外。ほかの例外をラップしている可能性がある。SAXParseException
void error(SAXParseException exception) throws SAXException
これは、W3C XML 1.0 勧告セクション 1.2 の「エラー」の定義に相当します。たとえば、妥当性を検証するパーサーは、このコールバックを使用して妥当性制約違反を報告します。デフォルトの動作では何も実行されません。
SAX パーサーは、このメソッドの呼び出し後も標準構文解析イベントを提供し続ける必要があります。これは、アプリケーションが文書処理を最後までできなければならないからです。必須事項として XML 勧告に定義されているわけではありませんが、アプリケーションが文書処理を最後までできない場合、パーサーは致命的なエラーを報告します。
フィルタは、このメソッドを使用してその他の非 XML エラーも報告できます。
exception
- SAX 構文解析例外にカプセル化されたエラー情報。SAXException
- 任意の SAX 例外。ほかの例外をラップしている可能性がある。SAXParseException
void fatalError(SAXParseException exception) throws SAXException
このメソッドのマニュアルと ContentHandler.endDocument()
のマニュアルとの間には明らかに矛盾があります。クライアントは、今後のメジャーリリースでこのあいまいさが解決されないかぎり、パーサーが fatalError() を報告したり例外をスローしたときに endDocument() が呼び出されるかどうかを仮定しないようにする必要があります。
これは、W3C XML 1.0 勧告セクション 1.2 の「致命的なエラー」の定義に相当します。たとえば、パーサーは、このコールバックを使用して整形式制約違反を報告します。
パーサーがこのメソッドを呼び出したあと、アプリケーションは文書が使用できなくなったと判断し、その他のエラーメッセージを収集するだけの目的で処理を続行します。つまり、SAX パーサーは、このメソッドを呼び出したあと、その他のイベントの報告を停止してもかまいません。
exception
- SAX 構文解析例外にカプセル化されたエラー情報。SAXException
- 任意の SAX 例外。ほかの例外をラップしている可能性がある。SAXParseException
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.