ServoyException
Overview
The ServoyException class is a specialized exception handling mechanism for the Servoy runtime environment. It offers extensive support for identifying and managing errors through predefined constants representing various scenarios, such as database deadlocks, permission issues, and validation failures. The class is designed to provide meaningful context and feedback for debugging and runtime operations. ## Functionality and Features The class defines a comprehensive set of constants categorized by error type, including database integrity violations, SQL syntax errors, and application-level access control issues. It enables runtime systems to determine error codes and retrieve corresponding human-readable messages, facilitating informed decision-making during error handling. Methods like js_getErrorCode and js_getMessage provide structured access to error information, while the js_getStackTrace method supports detailed debugging through stack trace retrieval. Additionally, the class integrates with RhinoException to generate JavaScript stack traces, ensuring compatibility with Servoy's scripting environment. This functionality supports scenarios where the cause of the error is a JavaScript exception, allowing integration between Java and JavaScript layers. Other features include support for custom contexts, logging capabilities, and tools for managing cascading exceptions in a multi-layered application environment.
Returned Types
Constants Summarized
Exception code for NO_PARENT_DELETE_WITH_RELATED_RECORDS.
Methods Summarized
Returns the script stack trace for this ServoyException if this could be created.
Constants Detailed
ABSTRACT_FORM
Exception code for ABSTRACT_FORM.
This code is used when a form, that cannot be created, is shown (for example, a form without parts).
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueACQUIRE_LOCK_FAILURE
Exception code for ACQUIRE_LOCK_FAILURE.
This code is used when a database failed to lock a row or table.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueBAD_SQL_SYNTAX
Exception code for BAD_SQL_SYNTAX.
This code is used when a database exception is recognized as an sql syntax error.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueCLIENT_NOT_AUTHORIZED
Exception code for CLIENT_NOT_AUTHORIZED.
This code is used when an client performs an action that requires the user to be logged in and the user has not logged in yet.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueDATA_ACCESS_RESOURCE_FAILURE
Exception code for DATA_ACCESS_RESOURCE_FAILURE.
This code is used when a database exception received an error accessing storage devices.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueDATA_INTEGRITY_VIOLATION
Exception code for DATA_INTEGRITY_VIOLATION.
This code is used when a database exception is recognized as an integrity exception (like constraint violation).
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueDEADLOCK
Exception code for DEADLOCK.
This code is used when a deadlock is detected by the database.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueDELETE_NOT_GRANTED
Exception code for DELETE_NOT_GRANTED.
This code is used when a record deletion was rejected by a pre-delete Servoy trigger.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueEXECUTE_PROGRAM_FAILED
Exception code for EXECUTE_PROGRAM_FAILED.
This code is used when an external program was not executed correctly.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueINCORRECT_LOGIN
Exception code for INCORRECT_LOGIN.
This code is used when the user enters invalid credentials.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueINVALID_INPUT
Exception code for INVALID_INPUT.
This code is used when the user enters data that could not be validated.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueINVALID_RESULTSET_ACCESS
Exception code for INVALID_RESULTSET_ACCESS.
This code is used when a data is requested that is not selected in the sql.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueMAINTENANCE_MODE
Exception code for MAINTENANCE_MODE.
This code is used when a client could not be registered with the server because the server is in maintenance mode.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueMUST_ROLLBACK
Exception code for MUST_ROLLBACK.
This code is used when an update is not performed because of a previous sql-exception within a transaction.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueNO_ACCESS
Exception code for NO_ACCESS.
This code is used when a user wants to view data and this is disallowed by security settings.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueNO_CREATE_ACCESS
Exception code for NO_CREATE_ACCESS.
This code is used when a user wants to create new records and this is disallowed by security settings.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueNO_DELETE_ACCESS
Exception code for NO_DELETE_ACCESS.
This code is used when a user wants to delete data and this is disallowed by security settings.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueNO_LICENSE
Exception code for NO_LICENSE.
This code is used when a client could not be registered with the server because of license limitations.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueNO_MODIFY_ACCESS
Exception code for NO_MODIFY_ACCESS.
This code is used when a user wants to update data and this is disallowed by security settings.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueNO_PARENT_DELETE_WITH_RELATED_RECORDS
Exception code for NO_PARENT_DELETE_WITH_RELATED_RECORDS.
This code is used when a record could not be deleted because a non-empty relation exists for the record that does not allow parent delete when having related records.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueNO_RELATED_CREATE_ACCESS
Exception code for NO_RELATED_CREATE_ACCESS.
This code is used when a user wants to create new related records and this is disallowed by security settings.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return truePERMISSION_DENIED
Exception code for PERMISSION_DENIED.
This code is used when a database exception is recognized as a authorization error.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueRECORD_LOCKED
Exception code for RECORD_LOCKED.
This code is used when a record could not be updated or deleted because it is locked by another client.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueRECORD_VALIDATION_FAILED
Exception code for RECORD_VALIDATION_FAILED.
This code is used when a record update/insert was rejected by a pre-update/insert Servoy trigger.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueSAVE_FAILED
Exception code for SAVE_FAILED.
This code is used when a javascript exception occurred during saving data to the database.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueUNEXPECTED_UPDATE_COUNT
Exception code for UNEXPECTED_UPDATE_COUNT.
This code is used when a data could not be deleted or updated when expected (for example when a record was deleted outside Servoy and a Servoy client wants to update the record).
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueUNKNOWN_DATABASE_EXCEPTION
Exception code for UNKNOWN_DATABASE_EXCEPTION.
This code is used when an unrecognized database exception has occurred.
Type Number
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueMethods Detailed
getContext()
Returns: String the context associated with this ServoyException.
getErrorCode()
Returns the error code for this ServoyException. Can be one of the constants declared in ServoyException.
Returns: Number the error code for this ServoyException. Can be one of the constants declared in ServoyException.
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return truegetMessage()
Returns the string message for this ServoyException.
Returns: String the string message for this ServoyException.
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return truegetScriptStackTrace()
Returns the script stack trace for this ServoyException if this could be created.
Returns: String the string stack trace for this ServoyException.
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return truegetStackTrace()
Returns the stack trace for this ServoyException.
Returns: String the string stack trace for this ServoyException.
Sample
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
/** @type {ServoyException} */
var servoyException = ex;
application.output("is a ServoyException")
application.output("Errorcode: "+servoyException.getErrorCode())
var trace = "";
if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
else if (servoyException.getStackTrace) trace = servoyException.getStackTrace();
if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
{
plugins.dialogs.showErrorDialog( 'Error', 'It seems you did not fill in a required field', 'OK');
//Get the failed records after a save
var array = databaseManager.getFailedRecords()
for( var i = 0 ; i < array.length ; i++ )
{
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
/** @type {DataException} */
var dataException = record.exception;
application.output('SQL: '+dataException.getSQL())
application.output('SQLState: '+dataException.getSQLState())
application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
}
}
return false
}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error
return trueLast updated
Was this helpful?