aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/exceptions.py
diff options
context:
space:
mode:
Diffstat (limited to 'libmproxy/exceptions.py')
-rw-r--r--libmproxy/exceptions.py25
1 files changed, 22 insertions, 3 deletions
diff --git a/libmproxy/exceptions.py b/libmproxy/exceptions.py
index f34d9707..0e11c136 100644
--- a/libmproxy/exceptions.py
+++ b/libmproxy/exceptions.py
@@ -1,23 +1,42 @@
+"""
+We try to be very hygienic regarding the exceptions we throw:
+Every Exception mitmproxy raises shall be a subclass of ProxyException.
+
+
+See also: http://lucumr.pocoo.org/2014/10/16/on-error-handling/
+"""
from __future__ import (absolute_import, print_function, division)
class ProxyException(Exception):
"""
Base class for all exceptions thrown by libmproxy.
+
+ Args:
+ message: the error message
+ cause: (optional) an error object that caused this exception, e.g. an IOError.
"""
- def __init__(self, message, cause=None):
+ def __init__(self, message):
"""
:param message: Error Message
- :param cause: Exception object that caused this exception to be thrown.
"""
super(ProxyException, self).__init__(message)
- self.cause = cause
class ProtocolException(ProxyException):
pass
+class TlsException(ProtocolException):
+ pass
+
+
+class ClientHandshakeException(TlsException):
+ def __init__(self, message, server):
+ super(ClientHandshakeException, self).__init__(message)
+ self.server = server
+
+
class Socks5Exception(ProtocolException):
pass