You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
classCustomException(Exception):
def__init__(self, custom: int, arguments: str) ->None:
self.msg=f"Something specific happened with custom: {custom} and {arguments}"
Above exception class has an issue, in my personal experience it's quite common. The implementer assumes, that they will use the self.msg parameter during exception handling. The issue araises when the exception gets anywhere else as the its string representation is as follows:
How to fix it? By calling super().__init__() in the constructor. That way the string representation of the custom exception will contain the error message.
Above exception class has an issue, in my personal experience it's quite common. The implementer assumes, that they will use the
self.msg
parameter during exception handling. The issue araises when the exception gets anywhere else as the its string representation is as follows:and when the exception is instantiated with keyword arguments, we lose the information about the arguments' values.
How to fix it? By calling
super().__init__()
in the constructor. That way the string representation of the custom exception will contain the error message.Specification proposal
If a class:
Exception
,__str__()
method,__init__()
method doesn't enforce any positional-only argument,super().__init__()
in its__init__()
methodThen:
The text was updated successfully, but these errors were encountered: