PyUnicode_FromKindAndData() raises a ValueError if the kind is unknown
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index fe91975..f01fae2 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -1211,7 +1211,7 @@
     case PyUnicode_4BYTE_KIND:
         return _PyUnicode_FromUCS4(buffer, size);
     }
-    assert(0);
+    PyErr_SetString(PyExc_ValueError, "invalid kind");
     return NULL;
 }