diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6b6fba38ba83b10c667466ebb3fc2d4f88b54758..e3e33cff12d72291654f91077bcfa15fbc6d7947 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,4 @@
 # v2.14.46
 
 * added kwargs to ThreadCollection.from_class
+* fixed a bug in CustomException
diff --git a/satella/__init__.py b/satella/__init__.py
index 487574d7afefc6859a80d3a4f4e16ba46fd110f1..badd328601d8b2d1a030cf8c0cfc9bd6963cab99 100644
--- a/satella/__init__.py
+++ b/satella/__init__.py
@@ -1 +1 @@
-__version__ = '2.14.46a2'
+__version__ = '2.14.46a3'
diff --git a/satella/exceptions.py b/satella/exceptions.py
index 9c96260e6a6a22073faba3c727fb673644f43e7e..0bea733837cfc108225c85f345b0dd8cae0e718f 100644
--- a/satella/exceptions.py
+++ b/satella/exceptions.py
@@ -26,8 +26,11 @@ class CustomException(Exception):
 
     def __str__(self) -> str:
         a = '%s(%s' % (self.__class__.__qualname__.split('.')[-1], ', '.join(map(repr, self.args)))
-        if self.kwargs:
-            a += ', ' + ', '.join(map(lambda k, v: '%s=%s' % (k, repr(v)), self.kwargs.items()))
+        try:
+            if self.kwargs:
+                a += ', ' + ', '.join(map(lambda k, v: '%s=%s' % (k, repr(v)), self.kwargs.items()))
+        except AttributeError:
+            pass
         a += ')'
         return a
 
@@ -36,9 +39,12 @@ class CustomException(Exception):
                          if self.__class__.__module__ != 'builtins' else '',
                          self.__class__.__qualname__,
                          ', '.join(map(repr, self.args)))
-        if self.kwargs:
-            a += ', ' + (', '.join(map(lambda kv: '%s=%s' % (kv[0], repr(kv[1])),
-                                       self.kwargs.items())))
+        try:
+            if self.kwargs:
+                a += ', ' + (', '.join(map(lambda kv: '%s=%s' % (kv[0], repr(kv[1])),
+                                           self.kwargs.items())))
+        except AttributeError:
+            pass
         a += ')'
         return a