mirror of
https://github.com/postgres/postgres.git
synced 2025-06-25 01:02:05 +03:00
Another attempt at 7.0
This commit is contained in:
111
src/interfaces/jdbc/org/postgresql/util/PSQLException.java
Normal file
111
src/interfaces/jdbc/org/postgresql/util/PSQLException.java
Normal file
@ -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;
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user