Page MenuHomePhabricator

Clean up unchecked exceptions
Open, Needs TriagePublic

Description

I would like to clear up ambiguity around checked vs. unchecked exceptions in MediaWiki. Unchecked exceptions are generally not caught except at the very highest level, because there is nothing your code should do to recover from the error, it should simply halt. Redundant @throws annotations for unchecked exceptions should be removed.

If the exception should be checked by callers, the @throws annotation should include a comment, especially in cases where the exception class is normally unchecked.

Write a code sniff to find all instances.

Event Timeline

Change 556654 had a related patch set uploaded (by Awight; owner: Awight):
[mediawiki/tools/codesniffer@master] [WIP] Sniff for undocumented, unchecked @throws annotations

https://gerrit.wikimedia.org/r/556654

Change 556724 had a related patch set uploaded (by Awight; owner: Awight):
[mediawiki/core@master] [WIP] Remove unchecked errors from function signature

https://gerrit.wikimedia.org/r/556724

Change 557193 had a related patch set uploaded (by Awight; owner: Awight):
[mediawiki/core@master] [DNM] Safe upgrade for a new sniff: configure to check nothing

https://gerrit.wikimedia.org/r/557193

Change 557194 had a related patch set uploaded (by Awight; owner: Awight):
[mediawiki/core@master] Easy exceptions to remove

https://gerrit.wikimedia.org/r/557194

Change 557195 had a related patch set uploaded (by Awight; owner: Awight):
[mediawiki/core@master] [WIP] Exception annotations that might make sense

https://gerrit.wikimedia.org/r/557195

Change 557196 had a related patch set uploaded (by Awight; owner: Awight):
[mediawiki/core@master] [WIP] Questionable exceptions

https://gerrit.wikimedia.org/r/557196

Change 557193 abandoned by Awight:
[DNM] Safe upgrade for a new sniff: configure to check nothing

Reason:
Don't need this yet.

https://gerrit.wikimedia.org/r/557193

Change 556724 abandoned by Awight:
[WIP] Remove unchecked errors from function signature

https://gerrit.wikimedia.org/r/556724

Change 557195 abandoned by Awight:
[WIP] Exception annotations that might make sense

https://gerrit.wikimedia.org/r/557195

Change 557253 had a related patch set uploaded (by Awight; owner: Awight):
[mediawiki/tools/codesniffer@master] [WIP] Knob to forbid any unchecked exception annotations

https://gerrit.wikimedia.org/r/557253

Removing task assignee due to inactivity, as this open task has been assigned for more than two years. See the email sent to the task assignee on February 06th 2022 (and T295729).

Please assign this task to yourself again if you still realistically [plan to] work on this task - it would be welcome.

If this task has been resolved in the meantime, or should not be worked on ("declined"), please update its task status via "Add Action… 🡒 Change Status".

Also see https://www.mediawiki.org/wiki/Bug_management/Assignee_cleanup for tips how to best manage your individual work in Phabricator.

Change 807233 had a related patch set uploaded (by Krinkle; author: Awight):

[mediawiki/core@master] ResourceLoader: Remove unchecked exception annotations

https://gerrit.wikimedia.org/r/807233

Change 807233 merged by jenkins-bot:

[mediawiki/core@master] ResourceLoader: Remove unchecked exception annotations

https://gerrit.wikimedia.org/r/807233

Change 829829 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/FlaggedRevs@master] Remove generic `@throws Exception` that don't explain anything

https://gerrit.wikimedia.org/r/829829

Change 829829 merged by jenkins-bot:

[mediawiki/extensions/FlaggedRevs@master] Remove generic `@throws Exception` that don't explain anything

https://gerrit.wikimedia.org/r/829829

Change 928585 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/skins/MinervaNeue@master] Replace deprecated MWException

https://gerrit.wikimedia.org/r/928585

Change 928585 merged by jenkins-bot:

[mediawiki/skins/MinervaNeue@master] Replace deprecated MWException

https://gerrit.wikimedia.org/r/928585

Change 928626 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/GrowthExperiments@master] Replace deprecated MWException

https://gerrit.wikimedia.org/r/928626

Change 928629 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/CirrusSearch@master] Replace deprecated MWException

https://gerrit.wikimedia.org/r/928629

Change 928673 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/OATHAuth@master] Replace deprecated MWException

https://gerrit.wikimedia.org/r/928673

Change 928629 merged by jenkins-bot:

[mediawiki/extensions/CirrusSearch@master] Replace deprecated MWException

https://gerrit.wikimedia.org/r/928629

Change 928626 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Replace deprecated MWException

https://gerrit.wikimedia.org/r/928626

Change 928944 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/DonationInterface@master] Remove unnecessary `@throws MWException`

https://gerrit.wikimedia.org/r/928944

Change 929416 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/WikibaseLexemeCirrusSearch@master] Remove `@throws MWException` for unchecked exceptions

https://gerrit.wikimedia.org/r/929416

Change 929416 merged by jenkins-bot:

[mediawiki/extensions/WikibaseLexemeCirrusSearch@master] Remove `@throws MWException` for unchecked exceptions

https://gerrit.wikimedia.org/r/929416

Change 928944 merged by jenkins-bot:

[mediawiki/extensions/DonationInterface@master] Remove unnecessary `@throws MWException`

https://gerrit.wikimedia.org/r/928944

Change 928961 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/core@master] Replace deprecated MWException

https://gerrit.wikimedia.org/r/928961

Change 928961 merged by jenkins-bot:

[mediawiki/core@master] Replace deprecated MWException

https://gerrit.wikimedia.org/r/928961

Change #557194 merged by jenkins-bot:

[mediawiki/core@master] Remove unchecked exception annotations

https://gerrit.wikimedia.org/r/557194

Change #1235397 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/OATHAuth@master] Remove most MWException references in WebAuthn code

https://gerrit.wikimedia.org/r/1235397

Change #928673 merged by jenkins-bot:

[mediawiki/extensions/OATHAuth@master] Replace deprecated MWException

https://gerrit.wikimedia.org/r/928673

Change #1235397 merged by jenkins-bot:

[mediawiki/extensions/OATHAuth@master] Remove MWException references in WebAuthn code

https://gerrit.wikimedia.org/r/1235397