diff --git a/examples/api/document-markup/src/main/java/org/apache/commons/digester3/examples/api/documentmarkup/MarkupDigester.java b/examples/api/document-markup/src/main/java/org/apache/commons/digester3/examples/api/documentmarkup/MarkupDigester.java
index a4209ed..fa31aff 100644
--- a/examples/api/document-markup/src/main/java/org/apache/commons/digester3/examples/api/documentmarkup/MarkupDigester.java
+++ b/examples/api/document-markup/src/main/java/org/apache/commons/digester3/examples/api/documentmarkup/MarkupDigester.java
@@ -70,7 +70,7 @@
      * @param start Starting offset into the buffer
      * @param length Number of characters from the buffer
      *
-     * @exception SAXException if a parsing error is to be reported
+     * @throws SAXException if a parsing error is to be reported
      */
     @Override
     public void characters( char buffer[], int start, int length )
@@ -91,7 +91,7 @@
      *   string if qualified names are not available.
      * @param list The attributes attached to the element. If there are
      *   no attributes, it shall be an empty Attributes object. 
-     * @exception SAXException if a parsing error is to be reported
+     * @throws SAXException if a parsing error is to be reported
      */
     @Override
     public void startElement( String namespaceURI, String localName, String qName, Attributes list )
@@ -117,7 +117,7 @@
      *   string if Namespace processing is not being performed.
      * @param qName - The qualified XML 1.0 name (with prefix), or the
      *   empty string if qualified names are not available.
-     * @exception SAXException if a parsing error is to be reported
+     * @throws SAXException if a parsing error is to be reported
      */
     @Override
     public void endElement( String namespaceURI, String localName, String qName )
diff --git a/examples/rss/src/main/java/org/apache/commons/digester3/rss/Channel.java b/examples/rss/src/main/java/org/apache/commons/digester3/rss/Channel.java
index b087086..219f308 100644
--- a/examples/rss/src/main/java/org/apache/commons/digester3/rss/Channel.java
+++ b/examples/rss/src/main/java/org/apache/commons/digester3/rss/Channel.java
@@ -435,7 +435,7 @@
      * @param encoding The character encoding to declare, or <code>null</code>
      *  for no declaration
      *
-     * @exception UnsupportedEncodingException if the named encoding
+     * @throws UnsupportedEncodingException if the named encoding
      *  is not supported
      */
     public void render( OutputStream stream, String encoding )
diff --git a/examples/rss/src/main/java/org/apache/commons/digester3/rss/RSSDigester.java b/examples/rss/src/main/java/org/apache/commons/digester3/rss/RSSDigester.java
index 2353207..2eac120 100644
--- a/examples/rss/src/main/java/org/apache/commons/digester3/rss/RSSDigester.java
+++ b/examples/rss/src/main/java/org/apache/commons/digester3/rss/RSSDigester.java
@@ -128,8 +128,8 @@
      *
      * @param file File containing the XML data to be parsed
      *
-     * @exception IOException if an input/output error occurs
-     * @exception SAXException if a parsing exception occurs
+     * @throws IOException if an input/output error occurs
+     * @throws SAXException if a parsing exception occurs
      */
     @Override
     public <T> T parse( File file )
@@ -146,8 +146,8 @@
      *
      * @param input Input source containing the XML data to be parsed
      *
-     * @exception IOException if an input/output error occurs
-     * @exception SAXException if a parsing exception occurs
+     * @throws IOException if an input/output error occurs
+     * @throws SAXException if a parsing exception occurs
      */
     @Override
     public <T> T parse( InputSource input )
@@ -165,8 +165,8 @@
      *
      * @param input Input stream containing the XML data to be parsed
      *
-     * @exception IOException if an input/output error occurs
-     * @exception SAXException if a parsing exception occurs
+     * @throws IOException if an input/output error occurs
+     * @throws SAXException if a parsing exception occurs
      */
     @Override
     public <T> T parse( InputStream input )
@@ -183,8 +183,8 @@
      *
      * @param uri URI containing the XML data to be parsed
      *
-     * @exception IOException if an input/output error occurs
-     * @exception SAXException if a parsing exception occurs
+     * @throws IOException if an input/output error occurs
+     * @throws SAXException if a parsing exception occurs
      */
     @Override
     public <T> T parse( String uri )
