mirror of
https://github.com/doctrine/orm.git
synced 2026-03-23 22:42:18 +01:00
Interfaces mis @throw annotations
#6274
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @hansbogert on GitHub (Jul 31, 2019).
Bug Report
Summary
Interfaces of, e.g.,
EntityManagerInterfacedo not include@throwannotations.Current behavior
This causes IDEs to not notice that for example calls to
EntityManagerInterface::flushmay cause exceptions.How to reproduce
Reference
EntityManagerInterfacein an IDE like PhpStorm or other, and have the following snippetExpected behavior
I expect the IDE to be able to tell, based on docblocks of the Doctrine library, that we should catch, (or re-throw) the exceptions which can occur.
@Ocramius commented on GitHub (Jul 31, 2019):
Documenting all
@throwsis not possible here, since there are multiple un-checked exception types upstream from that interface (in implementations).You can gladly suggest those that are directly thrown in the
EntityManager(implementation).Related: https://github.com/doctrine/orm/issues/7780
@hansbogert commented on GitHub (Jul 31, 2019):
Well if you mean by unchecked exceptions, runtime exceptions, then I totally agree.
So basically we'd want to add
right?
@Ocramius commented on GitHub (Jul 31, 2019):
Something like that, but please look at the current 3.x work.
@Ocramius commented on GitHub (Jul 31, 2019):
See https://github.com/doctrine/orm/pull/6743
@derrabus commented on GitHub (May 11, 2022):
We're doing some housekeeping on the 3.0.0 milestone. Since nobody seems to be actively working on this topic I'm removing this PR from the 3.0.0 milestone.
That being said, the issue does not really look actionable at the moment. I'd be happy to discuss and merge any PR adding reasonable
@throwsannotations though. Also, if we take this topic seriously, we should think about some kind of tooling that tells us about correctness and completenes of such annotations.@greg0ire commented on GitHub (Nov 16, 2022):
@morozov mentioned https://phpstan.org/blog/bring-your-exceptions-under-control in https://github.com/doctrine/dbal/pull/5777, we might want to look into it.