blob: 8efcc3d34f7cf403a27f2e2e7ce2b8a546c06c0a [file] [log] [blame]
package javax.script;
/**
* ScriptException is a generic checked exception thrown by mehtods
* of scripting API. Checked exceptions thrown by the underlying
* interpreters must be caught and used to initialize
* ScriptExceptions.
*
* @author Nandika Jayawardana <nandika@opensource.lk>
* @author Sanka Samaranayake <sanka@opensource.lk>
*/
public class ScriptException extends Exception {
/** Stroes the file name of the script */
protected String fileName = null;
/**
* Stores the line number of the script in which the error has
* occured
*/
protected int lineNumber = -1;
/**
* Stores the column number of the script in which the error has
* occured
*/
protected int columnNumber = -1;
/** Stores the message which describes the cause of error */
protected String message;
/**
* Constructs a new exception with the specified cause.
*
* @param exception the cause of exception
*/
public ScriptException(Exception exception) {
super(exception);
}
/**
* Constructs a new exception with the specified detailed
* message.
*
* @param message the datailed message which caused the
* exception
*/
public ScriptException(String message) {
super(message);
this.message = message;
}
/**
* Constructs a new exception with the spcified detailed message
* of cause, the file name of the source of script and the line
* number of the script where the error has occured.
*
* @param message the detailed message of cause of exception
* @param fileName the file name which contains the script
* @param lineNumber the line number of the script where the error has
* occured
*/
public ScriptException(String message,String fileName,int lineNumber) {
super(message);
this.message = message;
this.fileName = fileName;
this.lineNumber = lineNumber;
}
/**
* Constructs a new exception using the detailed message of
* cause, file name which contains the script, line number and
* column number in which the error has occured.
*
* @param message the detailed message of the cause of
* exception
* @param fileName the name of the file which contains the
* script
* @param lineNumber the line number of the script where the
* error has occured
* @param columnNumber the column number of the script where the
* error has occured
*/
public ScriptException(String message,String fileName,int lineNumber,int columnNumber) {
super(message);
this.message = message;
this.fileName = fileName;
this.lineNumber = lineNumber;
this.columnNumber = columnNumber;
}
/**
* Retrieves the file name in which the script is contained.
*
* @return Returns the file name in which the script is contained
*/
public String getFileName() {
return fileName;
}
/**
* Retrieves the column number of the script where the error has
* occured. If the information is not available, returns -1.
*
* @return Returns the column number of the script where the
* error has occured
*/
public int getColumnNumber() {
return columnNumber;
}
/**
* Retrieves the line number of the script where the error has
* occured. If the information is not available, returns -1.
*
* @return Returns the line number of the script where the error
* has occured
*/
public int getLineNumber() {
return lineNumber;
}
/**
* Retrieves a String describing the cause of error.
*
* @return a String describing the cause of error
*/
public String getMessage(){
StringBuffer buffer = new StringBuffer();
buffer.append(message);
if (fileName != null) {
buffer.append("in: " + fileName);
}
if (lineNumber != -1) {
buffer.append("at line no: " + lineNumber);
}
if (columnNumber != -1) {
buffer.append("at column number: " + columnNumber);
}
return buffer.toString();
}
}