Можно определить использование проверенных исключений, если вы знаете, какие типы являются проверенными исключениями, т.е. наследовать от java.lang.Exception.
Проблема здесь в том, что вы, вероятно, не увидите полную иерархию наследования какэто требует сканирования всех задействованных артефактов.В качестве примера вы увидите, что любое из исключений вашего приложения наследуется от java.io.IOException, но поскольку файл JRE-JAR не был отсканирован, на графике не видно, что это исключение фактически расширяет исключение java.lang.Exception.Это ограничение также распространяется на все остальные используемые библиотеки, которые могут предоставлять свои собственные типы исключений.
Способ обойти это состоит в том, чтобы явно пометить необходимые типы исключений с помощью меток : Exception и : Проверено , например
MATCH
(:Artifact)-[:REQUIRES]->(e:Type)
WHERE
e.fqn in [
"java.lang.Exception",
"java.io.IOException"
]
SET
e:Exception:Checked
RETURN
e
Используя эту концепцию, можно создать отчет о методах, которые создают экземпляры проверенных исключений:
MATCH
(t:Type)-[:DECLARES]->(m:Method)-[i:INVOKES]->(:Constructor)<-[:DECLARES]-(e:Exception:Checked)
RETURN
t.fqn, m.signature, i.lineNumber