Package Torello.HTML.NodeSearch
Class TCCompareStrException
- java.lang.Object
-
- java.lang.Throwable
-
- java.lang.Exception
-
- java.lang.RuntimeException
-
- java.lang.IllegalArgumentException
-
- Torello.HTML.NodeSearch.TCCompareStrException
-
- All Implemented Interfaces:
java.io.Serializable
- Direct Known Subclasses:
CSSStrException
public class TCCompareStrException extends java.lang.IllegalArgumentException
'Text-Comparitor Compare-String Exception'
is thrown by the argument marshalling and validity checking code when attempts are made to search HTML-Vector's
using an invalid input-String[]
parameter.
This class does some passed-parameter checking for the HTML-Search routines, such as:FIND, GET, REMOVE, POLL, etc...
If one is using theclass TextComparitor
, it is important to remember that it usually works in coordination with Java'svar-args
syntax which allows anywhere from'0'
to'n' String's
. This class ofException
will be thrown if any one of them is null, or if zero arguments were passed to the var-args syntax.
This class provides somepublic final
"inspection & convenience" fields which should guarantee to avoid havingnull
values when thisException
is thrown by an internal method. If as a programmer, you intended to extend use of this class, make sure to pass valid-information & valid-data, to the constructors of this class.- See Also:
- Serialized Form
Hi-Lited Source-Code:- View Here: Torello/HTML/NodeSearch/TCCompareStrException.java
- Open New Browser-Tab: Torello/HTML/NodeSearch/TCCompareStrException.java
-
-
Field Summary
Serializable ID Modifier and Type Field static long
serialVersionUID
'final'
Exception Convenience FieldsModifier and Type Field Vector<String>
compareStrVec
int
i
-
Constructor Summary
Constructors Constructor TCCompareStrException(String message, String[] compareStr, int i)
TCCompareStrException(String message, Throwable cause, String[] compareStr, int i)
-
Method Summary
'static'
Exception Check MethodsModifier and Type Method static void
check(String... compareStr)
-
-
-
Field Detail
-
serialVersionUID
public static final long serialVersionUID
This fulfils the SerialVersion UID requirement for all classes that implement Java'sinterface java.io.Serializable
. Using theSerializable
Implementation offered by java is very easy, and can make saving program state when debugging a lot easier. It can also be used in place of more complicated systems like "hibernate" to store data as well.
Note that Java'sjava.lang.Exception
andjava.lang.Error
classes implement theSerializable interface
, and a warning-free build expects this field be defined here.- See Also:
- Constant Field Values
- Code:
- Exact Field Declaration Expression:
public static final long serialVersionUID = 1;
-
compareStrVec
public final java.util.Vector<java.lang.String> compareStrVec
This field is provided to the user as a matter of convenience. All instantiations of thisException
are should guarantee to enforce and ensure that when an instance of this exception is thrown, the convenience field is not set null. If this package is extended, it is up to the programmer/user to make sure not to leave this field null when using one of these constructors.
IMPORTANT: All this is really trying to explain is that, when debugging your code, if in the analysis of a particularException
, that analysis causes another exception throw (NullPointerException
) - BECAUSE THIS CONVENIENCE FIELD WAS LEFT NULL - would be an unnecessary source of headache.
This should contain the list of compare-String's
passed for a parameter list to aTextComparitor
.- Code:
- Exact Field Declaration Expression:
public final Vector<String> compareStrVec;
-
i
public final int i
This field is intended to store the index into the'compareStrVec'
of the compare-String
that caused the exception throw in the first place.- Code:
- Exact Field Declaration Expression:
public final int i;
-
-
Constructor Detail
-
TCCompareStrException
public TCCompareStrException(java.lang.String message, java.lang.String[] compareStr, int i)
Constructs a new exception with the specified detail message, and the twopublic, final
parameters:compareStr
andi
.- Parameters:
message
- the detail message.compareStr
- This SHOULD BE the list of compare-String's
that were passed to aTextComparitor
that may have contained a null value, or was empty.
This parameter should not be left null. If it were accidentally left null, this could force exception-handling code to to throw an exception itself - while checking exceptions! Note that checking the input to this constructor does occur, and if this parameter is passed a null value, an instance ofTorello.Java.ExceptionCheckError
will throw.i
- This is the index into the'compareStr'
var-args parameter list that caused the exception to throw.- See Also:
compareStrVec
,i
-
TCCompareStrException
public TCCompareStrException(java.lang.String message, java.lang.Throwable cause, java.lang.String[] compareStr, int i)
Constructs a new exception with the specified detail message, cause-chain throwable, and the twopublic, final
parameters:compareStr
andi
.- Parameters:
message
- The detail message (which is saved for later retrieval by theThrowable.getMessage()
method).cause
- the cause (which is saved for later retrieval by theThrowable.getCause()
method). (A null value is permitted, and indicates that the cause is nonexistent or unknown.)compareStr
- This SHOULD BE the list of compare-String's
that were passed to aTextComparitor
that may have contained a null value, or was empty.
This parameter should not be left null. If it were accidentally left null, this could force exception-handling code to to throw an exception itself - while checking exceptions! Note that checking the input to this constructor does occur, and if this parameter is passed a null value, an instance ofTorello.Java.ExceptionCheckError
will throw.i
- This is the index into the'compareStr'
var-args parameter list that caused the exception to throw.- See Also:
compareStrVec
,i
-
-
Method Detail
-
check
public static void check(java.lang.String... compareStr)
This will do a simple test of the compare-String's
to make sure none of them are null, and that there are at least oneString
in theString[] array
.
REASON It is a subtle issue, but likely better to throw exceptions when one of thevar-args
to aString
comparison is'null'
Java asserts, generally that two null's do not equal each-other, although testing if a reference is'null'
(obviously) is fine. Generally, the concept that aString
-comparing-loop would just "skip" null compare-String's
may seem all right, unfortunately there is a diffence between the way aString
-compare'AND,'
aString
-compare'OR,'
vs. aString
-compare'XOR'
should behave. Since there is likely no general-convention or agreement on whatnull
in the presence oflogical AND, OR, NOT, XOR, NAND
really means, throwing aStrCmprException
when even onevar-args String
-parameters is'null'
actually makes the most sense.- Parameters:
compareStr
- This should be thevar-args
parameter that was passed to a search method- Throws:
TCCompareStrException
- If any of the elements of'compareStr'
is null, or if theString[] array
is zero-length.- Code:
- Exact Method Body:
if (compareStr == null) throw new NullPointerException ("The compareStr varags parameter, itself, was null."); if (compareStr.length == 0) throw new TCCompareStrException( "You have passed zero-arguments to a search-method's var-args String... " + "parameter. You must pass at least one non-null compare-string", compareStr, 0 ); for (int i=0; i < compareStr.length; i++) if (compareStr[i] == null) throw new TCCompareStrException( "One of the compare-strings passed to a search-method's var-args " + "String... parameter was null. This is not allowed.", compareStr, i );
-
-