Am Tue, Jul 14, 2026 at 10:05:32AM -0400 schrieb Random832:
> The problem is that if Python wants to provide information
> that isn't provided in the error code from the operating
> system, it has to do a complex and potentially expensive
> root cause analysis on its own, checking for all the
> possible conditions that could have caused the error. Do you
> do this every time there is an error, or only when
> requested? having it be a subclass rather than a property
> makes 'only when requested' more difficult to design.
It could be
try:
provoke_PermissionError()
except PermissionError as e:
try:
root_cause =
e.do_root_cause_analysis_even_if_it_takes_some_effort(maybe_list_of_potential_causes_to_check)
except:
report_issue()
raise e
match root_cause:
case FileReadOnlyError:
raise
MyFancyReadOnlyErrorOrSomeSuch(further_information)
case_:
raise e
so I'll pay the dividend only when I am (or my users are)
prepared to do so.
> And what if a secondary error is encounted while doing the
> analysis [e.g. you can't stat the file]?
Just like now:
>>> try:
... 1 / 0
... except Exception:
... 100 / 0
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
ZeroDivisionError: division by zero
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 4, in <module>
ZeroDivisionError: division by zero
Karsten
--
GPG 40BE 5B0E C98E 1713 AFA6 5BC0 3BEA AC80 7D4F C89B
--
https://mail.python.org/mailman3//lists/python-list.python.org