Язык Java дает вам возможность принимать решения.Если нет возможности для программы, которую вы создаете, скомпилировать, вы, как правило, делаете это проверенным исключением (хотя в большинстве случаев Java будет делать это для вас, и мне нужно будет точно знать, что вы пытаетесь сделать, если вы нене хочу программировать, чтобы иметь возможность компилировать, что может быть сложно)В противном случае вы сделали бы это RuntTimeException, и опять же, нам нужно было бы знать, что вы хотите сделать конкретно.По моему личному опыту, если я делаю пользовательское исключение, я просто сделаю его проверенным исключением, потому что пользователи понимают, как работает моя программа, и (или я понимаю, как она работает достаточно хорошо, чтобы знать, когда может возникнуть проблема),По этой причине я ошибаюсь в отношении проверенных исключений, чтобы любой, кто повторно использует мой код, легко понимал, как он работает и где могут возникнуть потенциальные ошибки.