classification
Title: Hide manually raised exception formatting
Type: enhancement Stage: resolved
Components: Interpreter Core Versions: Python 3.9
process
Status: closed Resolution: not a bug
Dependencies: Superseder:
Assigned To: Nosy List: SilentGhost, YoSTEALTH
Priority: normal Keywords:

Created on 2019-12-15 08:50 by YoSTEALTH, last changed 2019-12-15 09:16 by SilentGhost. This issue is now closed.

Messages (2)
msg358413 - (view) Author: (YoSTEALTH) * Date: 2019-12-15 08:50
class Some_Class:

    def error(self):
        if not getattr(self, 'boo', None):
            raise Exception(f'`class {self.__class__.__name__}:` raised some error!')


something = Some_Class()
something.error()


# This is how Error looks
# -----------------------
Traceback (most recent call last):
  File "/test.py", line 9, in <module>
    something.error()
  File "/test.py", line 5, in error
    raise Exception(f'`class {self.__class__.__name__}:` raised some error!')
Exception: `class Some_Class:` raised some error!


# This is how Error should look
# -----------------------------
Traceback (most recent call last):
  File "/test.py", line 9, in <module>
    something.error()
  File "/test.py", line 5, in error
    raise Exception(...)
Exception: `class Some_Class:` raised some error!


When a developer manually raises an error they want the user/developer debugging the error to see the final, nicely formatted error message itself "Exception: `class Some_Class:` raised some error!" not the ugly formating of the error message itself "raise Exception(f'`class {self.__class__.__name__}:` raised some error!')" which can also lead to confusion, thus it should be hidden as "raise Exception(...)"

It could also be said that "raise Exception(...)" shouldn't even be shown but what raises this error condition "if not getattr(self, 'boo', None):" but this seems more work so i am keeping it simple by saying lets just hide the ugly formatting part.
msg358415 - (view) Author: SilentGhost (SilentGhost) * (Python triager) Date: 2019-12-15 09:16
This sounds like it needs at least some discussion on python-ideas. For example, just reading your description I can't imagine what is supposed to happen when an error occurs when producing argument to the exception.
History
Date User Action Args
2019-12-15 09:16:39SilentGhostsetstatus: open -> closed

type: enhancement

nosy: + SilentGhost
messages: + msg358415
resolution: not a bug
stage: resolved
2019-12-15 08:50:47YoSTEALTHcreate