ServoyException
Overview
The ServoyException object. The constants that it provides document the scenarios when such an exception can be raised.
Returned Types
Constants Summarized
Methods Summarized
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, in smart client an error dialog will also show up
return true
ACQUIRE_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, in smart client an error dialog will also show up
return true
BAD_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, in smart client an error dialog will also show up
return true
CLIENT_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, in smart client an error dialog will also show up
return true
DATA_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, in smart client an error dialog will also show up
return true
DATA_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, in smart client an error dialog will also show up
return true
DEADLOCK
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
}<