Class SException
- java.lang.Object
-
- java.lang.Throwable
-
- java.lang.Exception
-
- java.lang.RuntimeException
-
- simpleorm.utils.SException
-
- All Implemented Interfaces:
java.io.Serializable
- Direct Known Subclasses:
SException.Data
,SException.Error
,SException.InternalError
,SException.Jdbc
,SException.Test
,SException.Validation
,SRecordInstance.BrokenOptimisticLockException
public abstract class SException extends java.lang.RuntimeException
SimpleORM takes care to trap most error conditions and throw meaningful exception messages. Unlike most other Java code, they always include information about which objects were being processed at the time, eg. the primary key of the current record. We strongly encourage this practice as it greatly facilitates maintenance and debugging.Subclasses are actually thrown, namely
SException.Error
to indicate probable bugs in the user's program,SException.InternalError
to indicate bugs in SimpleOrm,SException.Jdbc
for chained JDBC errors,SException.Data
for errors that probably the result of run-time data problems.SException.Test
is used to indicate failed test cases.Other well defined exceptions that a user may want to trap are given explicit subclasses (eg.
SRecordInstance.BrokenOptimisticLockException
).SimpleORM only throws SExceptions which extend RuntimeException and so avoid the need to clutter the code with unnecessary try/catch blocks. The only reason to use try/catch when using SimpleORM is because you really want to catch an error.
(The author stongly disagrees with the way that Java forces one to declare and catch exceptions because it encourages mediocre programmers to hide exceptions which is a very nasty practice. (Even Sun programmers do this quite regularly in the Java libraries, eg.
System.out.println()
!) It also clutters the code for no good reason. IMHO Java's "checked" exceptions add no value whatsoever in practice.)- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SException.Data
Errors in data or environment at runtime, not necessarily a programming bug.static class
SException.Error
Probable bug in user's program.static class
SException.InternalError
Probable bug in SimpleORM.static class
SException.Jdbc
Chained JDBC Exception, could be anything as JDBC does not separate exceptions out and provides minimal information about their underlying causes.static class
SException.Test
Exception thrown due to failed unit test cases.static class
SException.Validation
This Exception thrown by user written code to indicate user data entry errors, especially in the business rule methods.
-
Constructor Summary
Constructors Constructor Description SException()
Avoid using this one, include message.SException(java.lang.String message)
SException(java.lang.String message, java.lang.Throwable nestedException)
SException(java.lang.Throwable nestedException)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SFieldMeta
getFieldMeta()
java.lang.Object
getFieldValue()
SRecordInstance
getInstance()
java.lang.Object[]
getParams()
SRecordInstance
getRecordInstance()
java.lang.Class<SValidatorI>
getValidator()
SException
setFieldMeta(SFieldMeta fieldMeta)
SException
setFieldValue(java.lang.Object fieldValue)
SException
setInstance(SRecordInstance instance)
SException
setParams(java.lang.Object... params)
SException
setRecordInstance(SRecordInstance instance)
SException
setValidator(java.lang.Class<SValidatorI> validator)
-
-
-
Constructor Detail
-
SException
public SException(java.lang.String message, java.lang.Throwable nestedException)
-
SException
public SException(java.lang.String message)
-
SException
public SException(java.lang.Throwable nestedException)
-
SException
public SException()
Avoid using this one, include message.
-
-
Method Detail
-
getRecordInstance
public SRecordInstance getRecordInstance()
-
setRecordInstance
public SException setRecordInstance(SRecordInstance instance)
-
getFieldMeta
public SFieldMeta getFieldMeta()
-
setFieldMeta
public SException setFieldMeta(SFieldMeta fieldMeta)
-
getInstance
public SRecordInstance getInstance()
-
setInstance
public SException setInstance(SRecordInstance instance)
-
getFieldValue
public java.lang.Object getFieldValue()
-
setFieldValue
public SException setFieldValue(java.lang.Object fieldValue)
-
getParams
public java.lang.Object[] getParams()
-
setParams
public SException setParams(java.lang.Object... params)
-
getValidator
public java.lang.Class<SValidatorI> getValidator()
-
setValidator
public SException setValidator(java.lang.Class<SValidatorI> validator)
-
-