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, 2014, Oracle and/or its affiliates. All rights reserved.