summaryrefslogtreecommitdiff
path: root/src/main/java/exceptions/VSNegativeNumberException.java
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-06-20 18:47:45 +0300
committerPaul Buetow <paul@buetow.org>2025-06-20 18:47:45 +0300
commit70fc0505b223f7bf17d3671d0532773359cf7858 (patch)
tree1c244371e6a4e89e7694d5691db6a14b0ba2da06 /src/main/java/exceptions/VSNegativeNumberException.java
parentf6d2a6bbbc37c552accf91a13ccd6ea45ecf8e73 (diff)
Implement proper exception hierarchy and consistent error handling
- Create base exception classes: - VSSimulatorException: Base checked exception for all simulator errors - VSSimulatorRuntimeException: Base unchecked exception for unrecoverable errors - Refactor existing exceptions to extend from base class: - VSEventNotCopyableException: Now includes better error messages - VSParseIntegerVectorException: Added constructors with cause support - VSNegativeNumberException: Added field name and value parameters - Add new specific exception types: - VSConfigurationException: For configuration errors - VSSerializationException: For save/load operations - VSProcessException: For process-related errors - VSProtocolException: For protocol execution errors - Create VSErrorHandler utility class: - Centralized error logging and user notification - Consistent error handling patterns - Helper methods for warning and error dialogs - Update exception handling in code: - VSClassLoader: Better error messages and specific exception handling - Timestamp events: Catch RuntimeException for custom actions - All 132 unit tests pass 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Diffstat (limited to 'src/main/java/exceptions/VSNegativeNumberException.java')
-rw-r--r--src/main/java/exceptions/VSNegativeNumberException.java32
1 files changed, 29 insertions, 3 deletions
diff --git a/src/main/java/exceptions/VSNegativeNumberException.java b/src/main/java/exceptions/VSNegativeNumberException.java
index edf2049..a2f5bf6 100644
--- a/src/main/java/exceptions/VSNegativeNumberException.java
+++ b/src/main/java/exceptions/VSNegativeNumberException.java
@@ -1,12 +1,38 @@
package exceptions;
/**
- * The Interface VSNegativeNumberException, this exception is thrown if
- * a negative number has returned if a positive number has been expected.
+ * Exception thrown when a negative number is encountered where a positive number is expected.
+ * This is typically used for validation of numeric inputs that must be non-negative.
*
* @author Paul C. Buetow
*/
-public class VSNegativeNumberException extends Exception {
+public class VSNegativeNumberException extends VSSimulatorException {
/** The serial version uid */
private static final long serialVersionUID = 1L;
+
+ /**
+ * Constructs a new negative number exception.
+ */
+ public VSNegativeNumberException() {
+ super("Negative number not allowed");
+ }
+
+ /**
+ * Constructs a new negative number exception with the specified field name.
+ *
+ * @param fieldName the name of the field that contained the negative number
+ */
+ public VSNegativeNumberException(String fieldName) {
+ super("Negative number not allowed for field: " + fieldName);
+ }
+
+ /**
+ * Constructs a new negative number exception with the specified field name and value.
+ *
+ * @param fieldName the name of the field that contained the negative number
+ * @param value the negative value that was encountered
+ */
+ public VSNegativeNumberException(String fieldName, long value) {
+ super(String.format("Negative number not allowed for field '%s': %d", fieldName, value));
+ }
}