Обработка исключений: прямая цитата профессора: «Хотя класс Exception можно использовать непосредственно в программе, лучше использовать определенный класс исключений». Он не очень много рассказывал об этом, но мне интересно узнать, что думают другие, и если он прав, почему?Классы исключений в Java
ответ
То, что он означает, что ничто не мешает вам делать throw new Exception("this happened");
и throw new Exception("that happened");
Но это лучшая практика, чтобы сделать throw new ThisException()
и throw new ThatException();
Это потому, что в другом месте вы можете catch(ThisException e)
и справиться с ней, точно зная, что случилось, без необходимости catch(Exception e)
и удивляться, было ли это брошено, потому что «это» произошло, или потому что «это» произошло.
Я был в ситуациях, когда мне приходилось делать String s = e.getMessage();
, а затем попытаться разобрать строку, чтобы попытаться понять ее, и поверьте мне, это не забавно вообще делать что-то подобное.
Он также мог означает, что вместо использования блокировки 'Исключение'' используйте специальный блок catch catch, поэтому по-настоящему ответ слишком широк и основан на мнениях. – hagrawal
@hagrawal хорошо, это правда, что он мог иметь в виду именно это, хотя я в этом сомневаюсь. Во всяком случае, я думаю, что я рассмотрел оба дела. Я думаю, что это разумный вопрос. –
Ваш профессор, вероятно, имел в виду, что лучше бросить SomeTypeException
, чем бросать Exception
с некоторым текстовым сообщением.
Почему лучше использовать типизированное исключение?
Вы можете перехватывать исключения определенных типов.
try { ... } catch(ExceptionType1 e) { ... } catch(ExceptionType2 e) { ... }
Типы исключений брошенных метода дает ценную информацию для программиста о методе.
void someMethod() throws SQLException, ParserException { ... }
является более значимым, чем:
void someMethod() throws Exception { ... }
Это делает его лучше. Обычно он говорит что-то и говорит: «Не спрашивай, почему, просто знай, что это правда», но я не могу не задаться вопросом о более широком объяснении. Благодаря! – Mariela
Мои два цента:
Исключения, как и любая другая часть API, должна быть как можно более конкретным. Это по той же причине, почему вы должны использовать конкретные типы как String
, Integer
или Date
вместо простых Object
s.
- 1. Как создать классы исключений в java
- 2. Классы исключений и операторы
- 3. Имея разные классы исключений
- 4. Почему классы исключений в Java НЕ реализуют метод equals?
- 5. Почему мы должны писать пользовательские классы исключений в Java
- 6. Как классы исключений связаны во время компиляции в Java
- 7. Порядок исключений исключений в Java
- 8. php-классы вопросы обработки исключений
- 9. Созданные JAXB/xjc классы исключений не выбрасываются
- 10. Добавить друга Классы в список исключений Obfuscation
- 11. Классы и обработка исключений в C++
- 12. Как организовать классы исключений без дублирования кода?
- 13. Организация классов исключений в Java
- 14. использованием исключений в Java
- 15. Обработка исключений в Java
- 16. Выбросы исключений в Java
- 17. исключений в Java нить
- 18. Выбросы исключений в Java
- 19. Уплотненный исключений в Java
- 20. Типы исключений в Java
- 21. Обработка исключений в JAVA
- 22. Скорость исключений в Java
- 23. Важно ли, что() не выбрасывает (классы исключений)?
- 24. Не удается найти классы исключений в CodeModel в плагине XJC
- 25. Статические классы и заключительные классы в java
- 26. Неизменяемые классы в java
- 27. Депортированные классы в java?
- 28. перечислений классы в Java
- 29. полиморфизм в классы Java
- 30. Примитивные классы в Java
Профессора всегда правы, верьте им. Если какое-либо сомнение поймает их после класса, и они будут рады вас обязать. – hagrawal
[Как определить пользовательский класс исключений в Java] (http://stackoverflow.com/questions/3776327/how-to-define-custom-exception-class-in-java-the-easiest-way) – GabrielOshiro