summaryrefslogtreecommitdiff
path: root/pyvyos/exceptions.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyvyos/exceptions.py')
-rw-r--r--pyvyos/exceptions.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/pyvyos/exceptions.py b/pyvyos/exceptions.py
new file mode 100644
index 0000000..5a79733
--- /dev/null
+++ b/pyvyos/exceptions.py
@@ -0,0 +1,33 @@
+"""PyVyOS exception hierarchy for typed error handling."""
+
+
+class SDKError(Exception):
+ """Base exception for all PyVyOS SDK errors."""
+ pass
+
+
+class HttpError(SDKError):
+ """HTTP-level errors (network, timeout, status codes)."""
+
+ def __init__(self, status: int, message: str):
+ self.status = status
+ self.message = message
+ super().__init__(f"HTTP Error {status}: {message}")
+
+
+class ApiError(SDKError):
+ """API-level errors (when VyOS API returns success=False)."""
+
+ def __init__(self, message: str, details: dict = None):
+ self.message = message
+ self.details = details
+ super().__init__(message)
+
+
+class ValidationError(SDKError):
+ """Client-side validation errors (invalid parameters)."""
+
+ def __init__(self, message: str):
+ self.message = message
+ super().__init__(message)
+