проверено против непроверенной статистики исключений - PullRequest
1 голос
/ 06 января 2011

После того, как мне надоело убеждать моих коллег отказаться от проверенного исключения аргументативным способом, я ищу статистику, которая скажет, сколько программистов предпочитают проверенное исключение и сколько предпочитают их не использовать.опрос / голосование / статистика в сети?

Ответы [ 3 ]

5 голосов
/ 06 января 2011

Как насчет указания их на учебник по Java:

http://download.oracle.com/javase/tutorial/essential/exceptions/runtime.html

, который включает в себя заключительную строку, которая четко резюмирует ключевой момент:

Вот основная рекомендация: если разумно ожидать, что клиент оправиться от исключения, сделать это проверено исключение. Если клиент не может сделать что-нибудь, чтобы оправиться от исключение, сделать его непроверенным исключение.

0 голосов
/ 28 апреля 2012

Одна проблема со многими языками и средами, которые выводят свои общие концепции обработки исключений из C ++, состоит в том, что слишком много вещей эффективно кодируются в виде исключения.Проверенные исключения были бы хорошей идеей, , если бы различие между проверкой и непроверкой было сделано на сайтах броска и вылова, а не в объявлении исключения , и если был способ кратко указатьэти определенные проверенные исключения должны быть переброшены как непроверенные.К сожалению, Java требует, чтобы любое исключение данного типа всегда создавалось как проверенное или всегда как непроверенное, в зависимости от типа, и не предоставляет удобного или краткого способа сопоставления проверенных исключений с непроверенными.Вместо этого удобнее всего использовать проверенные исключения как проверенные исключения, что увеличивает фактор «неудобства» при одновременном снижении их полезности.

Если проверенные исключения были реализованы на сайте выброса, и если обычным способомобработка нежелательных проверенных исключений заключалась в том, чтобы преобразовать их в непроверенные, тогда можно было быть уверенным, что метод, который указывает конкретное условие сбоя путем генерирования определенного проверенного исключения, будет выбрасывать это проверенное исключение только тогда, когда он «хочет» сообщить об этой конкретной ошибке;если возникнет непредвиденное исключение того же типа во время выполнения метода, оно преобразуется в непроверенное исключение.Такая модель «проверенных исключений» может быть полезной и может также привести к более эффективному коду, чем обычные исключения (поскольку проверенные исключения должны будут обрабатываться непосредственно вызывающим подпрограммой, вызывающей их, большая часть разматывания стека и трассировки стека требуютсядля нормальной обработки исключений можно было бы пропустить).К сожалению, «проверенные исключения» Java не работают таким образом.

0 голосов
/ 06 января 2011

Если бы такой опрос проводился, разве ваши коровы не утверждают, что в Интернете больше плохих программистов, чем хороших программистов, и они ожидают, что за плохие исключения проголосовало больше плохих программистов? Так что это действительно не решит вашу проблему.

Две точки данных убедительны для меня:

  • Ни один другой язык, реализующий язык, нигде не скопировал проверенные исключения из Java. Это полный провал, насколько завоевывает популярность на других языках. Если бы в этой функции было что-то хорошее, кто-то присвоил бы ее для своего нового языка.

  • Широко развиты разработчики фреймворков, от Spring до Hibernate и Java EE, чтобы заменить многие проверенные исключения непроверенными.

Кроме того, вы можете попытаться просмотреть код своих проектов и найти примеры того, как проверенные исключения приводят к проблемам с тем, что исключения съедаются или бесполезно "выбрасывает" исключения "везде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...