summaryrefslogtreecommitdiff
path: root/src/main/java/exceptions/VSSerializationException.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/exceptions/VSSerializationException.java')
-rw-r--r--src/main/java/exceptions/VSSerializationException.java42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/main/java/exceptions/VSSerializationException.java b/src/main/java/exceptions/VSSerializationException.java
new file mode 100644
index 0000000..62594ef
--- /dev/null
+++ b/src/main/java/exceptions/VSSerializationException.java
@@ -0,0 +1,42 @@
+package exceptions;
+
+/**
+ * Exception thrown when serialization or deserialization of simulator objects fails.
+ * This is used when saving or loading simulation states.
+ *
+ * @author Paul C. Buetow
+ */
+public class VSSerializationException extends VSSimulatorException {
+ /** The serial version uid */
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Constructs a new serialization exception with the specified detail message.
+ *
+ * @param message the detail message
+ */
+ public VSSerializationException(String message) {
+ super(message);
+ }
+
+ /**
+ * Constructs a new serialization exception with the specified detail message and cause.
+ *
+ * @param message the detail message
+ * @param cause the cause (typically an IOException)
+ */
+ public VSSerializationException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ /**
+ * Constructs a new serialization exception for a specific object type.
+ *
+ * @param objectType the type of object that failed to serialize
+ * @param operation either "serialize" or "deserialize"
+ * @param cause the underlying cause
+ */
+ public VSSerializationException(String objectType, String operation, Throwable cause) {
+ super(String.format("Failed to %s object of type: %s", operation, objectType), cause);
+ }
+} \ No newline at end of file