summaryrefslogtreecommitdiff
path: root/src/interfaces/jdbc/org/postgresql/util/PSQLException.java
diff options
context:
space:
mode:
authorPeter Mount <peter@retep.org.uk>2000-04-17 20:07:56 +0000
committerPeter Mount <peter@retep.org.uk>2000-04-17 20:07:56 +0000
commit25dadc85140b1f688a4cf0c2de8b961a07b10f11 (patch)
tree14c91b7e37ca13fba1a4880687cf02bd2dad2de2 /src/interfaces/jdbc/org/postgresql/util/PSQLException.java
parentaafff4af162dcf2be91fcd67db6881d6cf166565 (diff)
downloadpostgresql-25dadc85140b1f688a4cf0c2de8b961a07b10f11.tar.gz
Another attempt at 7.0
Diffstat (limited to 'src/interfaces/jdbc/org/postgresql/util/PSQLException.java')
-rw-r--r--src/interfaces/jdbc/org/postgresql/util/PSQLException.java111
1 files changed, 111 insertions, 0 deletions
diff --git a/src/interfaces/jdbc/org/postgresql/util/PSQLException.java b/src/interfaces/jdbc/org/postgresql/util/PSQLException.java
new file mode 100644
index 0000000000..36290a5db1
--- /dev/null
+++ b/src/interfaces/jdbc/org/postgresql/util/PSQLException.java
@@ -0,0 +1,111 @@
+package org.postgresql.util;
+
+import java.sql.*;
+import java.text.*;
+import java.util.*;
+
+/**
+ * This class extends SQLException, and provides our internationalisation handling
+ */
+public class PSQLException extends SQLException
+{
+ private String message;
+
+ // Cache for future errors
+ static ResourceBundle bundle;
+
+ /**
+ * This provides the same functionality to SQLException
+ * @param error Error string
+ */
+ public PSQLException(String error) {
+ super();
+ translate(error,null);
+ }
+
+ /**
+ * A more generic entry point.
+ * @param error Error string or standard message id
+ * @param args Array of arguments
+ */
+ public PSQLException(String error,Object[] args)
+ {
+ //super();
+ translate(error,args);
+ }
+
+ /**
+ * Helper version for 1 arg
+ */
+ public PSQLException(String error,Object arg)
+ {
+ super();
+ Object[] argv = new Object[1];
+ argv[0] = arg;
+ translate(error,argv);
+ }
+
+ /**
+ * Helper version for 2 args
+ */
+ public PSQLException(String error,Object arg1,Object arg2)
+ {
+ super();
+ Object[] argv = new Object[2];
+ argv[0] = arg1;
+ argv[1] = arg2;
+ translate(error,argv);
+ }
+
+ /**
+ * This does the actual translation
+ */
+ private void translate(String id,Object[] args)
+ {
+ if(bundle == null) {
+ try {
+ bundle = ResourceBundle.getBundle("org.postgresql.errors");
+ } catch(MissingResourceException e) {
+ }
+ }
+
+ // Now look up a localized message. If one is not found, then use
+ // the supplied message instead.
+ message = null;
+ try {
+ message = bundle.getString(id);
+ } catch(MissingResourceException e) {
+ message = id;
+ }
+
+ // Expand any arguments
+ if(args!=null)
+ message = MessageFormat.format(message,args);
+
+ }
+
+ /**
+ * Overides Throwable
+ */
+ public String getLocalizedMessage()
+ {
+ return message;
+ }
+
+ /**
+ * Overides Throwable
+ */
+ public String getMessage()
+ {
+ return message;
+ }
+
+ /**
+ * Overides Object
+ */
+ public String toString()
+ {
+ return message;
+ }
+
+}