В моем коде я окружаю экземпляры объектов в блоке catch try, потому что они вызывают ошибку, я создаю много объектов, поэтому мой код выглядит очень грязным. Мне было интересно, можно ли исключить исключение из моего основного класса или это плохая практика?Выбрасывание исключения из основного класса?
ответ
Это нормально, чтобы исключить исключения из вашей точки входа (в данном случае, ваш метод main
), если вы не можете придумать определенную причину не («пользователь не должен этого видеть», «было бы лучше если бы я попытался восстановиться, а не выйти »).
Если вы можете обрабатывать исключения там, где они есть, вы должны сделать это. Например, вы можете зарегистрировать их, повторно бросить их как более понятные исключения (например, исключения проверки) или отказаться от метода, вернув null. Если нет смысла обрабатывать их, то нет.
Возможно, вам нужна более удобная группировка подобных исключений. Вы можете переместить весь свой код, находящийся внутри этих блоков try-catch, в частный метод (возможно, init
), который выдает все соответствующие исключения. Затем вызовите init
из метода main
и заверните, что init
вызовите блок try-catch, который перехватывает все эти исключения.
«Пользователь не должен видеть это» Это заставило меня удалить мой ответ. Я лично считаю, что исключения должны регистрироваться, а не отображаться пользователю. Во всяком случае, пользователю должно быть предоставлено сообщение об ошибке, а не полная трассировка стека, сообщая пользователю, что они должны представить свои «отчеты об ошибках». +1 –
- 1. Выбрасывание исключения из конструктора анонимного внутреннего класса
- 2. Выбрасывание исключения из ServletContextListener
- 3. Выбрасывание исключения из XSLT
- 4. Выбрасывание исключения?
- 5. Выбрасывание исключения для исключения
- 6. Выбрасывание исключения в сервлет
- 7. Выбрасывание исключения из обработчика сигнала
- 8. Выбрасывание исключения в конструкторе класса C++
- 9. Выбрасывание исключения без «Исключения в потоке ...»
- 10. Выбрасывание исключения как const &
- 11. Выбрасывание исключения вызывает TargetInvocationException
- 12. Выбрасывание исключения вместо ошибки из расширения PHP
- 13. Выбрасывание исключения из любого места в проекте
- 14. Выбрасывание исключений из исключения Linq Query
- 15. Выбрасывание нового исключения при метании старого исключения
- 16. Выбрасывание исключения в блоке catch
- 17. Выбрасывание исключения при реализации oauth2
- 18. Выбрасывание исключения в конструкторе (java)
- 19. Выбрасывание исключения в блоке catch
- 20. Выбрасывание исключений из JBPM WorkItemHandlers?
- 21. Выбрасывание исключения C++ после перехода inline-asm
- 22. Выбрасывание исключения, когда элемент не найден - java
- 23. Выбрасывание исключения не определено в интерфейсе
- 24. Выбрасывание исключений, а также исключения для ловли?
- 25. Почему это выбрасывание исключения формата строки
- 26. Выбрасывание исключения по следующему методу в java
- 27. C++: Выбрасывание исключения вызывает конструктор копирования?
- 28. Причастность (не) Повторное выбрасывание исключения после регистрации
- 29. альтернатива ловли и исключения Повторное выбрасывание
- 30. Выбрасывание исключения после повторной попытки блокирования кода
Не могли бы вы включить свой код здесь, для справки? –
Что будет обрабатывать исключение, созданное вашим основным методом? –
Если это что-то маленькое, это, вероятно, все в порядке. Если это, например, более активно связано с несколькими входами пользователя, вы можете обращаться по-разному. – ControlAltDel