User-defined exceptions need to be derived (either directly or indirectly) from the built-in Exception class in the Python example.
class CustomError(Exception):
...
pass
try:
...
except CustomError:
...User-defined exception in Python example
A simple example code creates a user-defined exception class MyError is derived from the super class Exception.
class MyError(Exception):
# Constructor or Initializer
def __init__(self, value):
self.value = value
# __str__ is to print() the value
def __str__(self):
return (repr(self.value))
try:
raise (MyError("Custom Error"))
# Value of Exception is stored in error
except MyError as error:
print('A New Exception occurred: ', error.value)
Output:

# class MyError is extended from super class Exception
class User_Error(Exception):
# Constructor method
def __init__(self, value):
self.value = value
# __str__ display function
def __str__(self):
return(repr(self.value))
try:
raise(User_Error("User defined error"))
# Value of Exception is stored in error
except User_Error as error:
print('A New Exception occured:',error.value)Do comment if you have any doubts or suggestions on this Python exception-handling topic.
Note: IDE: PyCharm 2021.3.3 (Community Edition)
Windows 10
Python 3.10.1
All Python Examples are in Python 3, so Maybe its different from python 2 or upgraded versions.