diff options
| author | Paul Buetow <paul@buetow.org> | 2025-06-20 18:47:45 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-06-20 18:47:45 +0300 |
| commit | 70fc0505b223f7bf17d3671d0532773359cf7858 (patch) | |
| tree | 1c244371e6a4e89e7694d5691db6a14b0ba2da06 /src/main/java/exceptions/VSNegativeNumberException.java | |
| parent | f6d2a6bbbc37c552accf91a13ccd6ea45ecf8e73 (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.java | 32 |
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)); + } } |
