Major update:  Fix bug:  Rename "new Exception" to "new Error" througout the project.
diff --git a/js/encoding/BinaryXMLDecoder.js b/js/encoding/BinaryXMLDecoder.js
index c41d549..41a4e45 100644
--- a/js/encoding/BinaryXMLDecoder.js
+++ b/js/encoding/BinaryXMLDecoder.js
@@ -86,7 +86,7 @@
 		tv = this.decodeTypeAndVal(this.istream);
 
 		if (null == tv) {
-			throw new Exception("Expected start element: " + startTag + " got something not a tag.");
+			throw new Error("Expected start element: " + startTag + " got something not a tag.");
 		}
 		
 		//String 
@@ -101,7 +101,7 @@
 		}
 		
 		if ((null ==  decodedTag) || decodedTag != startTag) {
-			throw new Exception("Expected start element: " + startTag + " got: " + decodedTag + "(" + tv.val() + ")");
+			throw new Error("Expected start element: " + startTag + " got: " + decodedTag + "(" + tv.val() + ")");
 		}
 		
 		if (null != attributes) {
@@ -109,7 +109,7 @@
 		}
 		
 	} catch (e) {
-		throw new Exception("readStartElement", e);
+		throw new Error("readStartElement", e);
 	}
 };
 
@@ -189,7 +189,7 @@
 			tv = this.decodeTypeAndVal(this.istream);
 			
 			if (null == tv) {
-				throw new Exception("Expected start element: " + startTag + " got something not a tag.");
+				throw new Error("Expected start element: " + startTag + " got something not a tag.");
 			}
 			
 			//String 
@@ -227,7 +227,7 @@
 			
 			if ((null ==  decodedTag) || decodedTag != startTag ) {
 				console.log('expecting '+ startag + ' but got '+ decodedTag);
-				throw new Exception("Expected start element: " + startTag + " got: " + decodedTag + "(" + tv.val() + ")");
+				throw new Error("Expected start element: " + startTag + " got: " + decodedTag + "(" + tv.val() + ")");
 			}
 			
 			// DKS: does not read attributes out of stream if caller doesn't
@@ -239,7 +239,7 @@
 			
 		//} catch ( e) {
 			//console.log(e);
-			//throw new Exception("readStartElement", e);
+			//throw new Error("readStartElement", e);
 		//}
 	}
 	
@@ -281,7 +281,7 @@
 				// DKS TODO are attributes same or different dictionary?
 				attributeName = tagToString(thisTV.val());
 				if (null == attributeName) {
-					throw new Exception("Unknown DATTR value" + thisTV.val());
+					throw new Error("Unknown DATTR value" + thisTV.val());
 				}
 			}
 			// Attribute values are always UDATA
@@ -296,7 +296,7 @@
 
 	} catch ( e) {
 		Log.logStackTrace(Log.FAC_ENCODING, Level.WARNING, e);
-		throw new Exception("readStartElement", e);
+		throw new Error("readStartElement", e);
 	}
 };
 
@@ -371,7 +371,7 @@
 		return false;
 	}
 	else{
-		throw new Exception("SHOULD BE STRING OR NUMBER");
+		throw new Error("SHOULD BE STRING OR NUMBER");
 	}
 }
 //returns Long
@@ -425,7 +425,7 @@
 				this.offset = previousOffset;
 			} catch ( e) {
 				Log.logStackTrace(Log.FAC_ENCODING, Level.WARNING, e);
-				throw new Exception("Cannot reset stream! " + e.getMessage(), e);
+				throw new Error("Cannot reset stream! " + e.getMessage(), e);
 			}
 		}
 		return decodedTag;
@@ -767,7 +767,7 @@
 
 	//}
 	//catch (e) {
-		//throw new Exception("Cannot parse " + startTag + ": " + strVal);
+		//throw new Error("Cannot parse " + startTag + ": " + strVal);
 	//}
 	
 	return parseInt(strVal);