Вопросы с тегом «exception-handling»

Обработка исключений - это процесс реагирования на возникновение аномальных или исключительных условий, требующих специальной обработки - часто меняющих нормальный ход выполнения программы.

8
Исключения: зачем бросать рано? Зачем ловить поздно?
Существует много известных лучших практик по обработке исключений в изоляции. Я достаточно хорошо знаю, что нужно делать, а что нет, но все становится сложнее, когда дело доходит до лучших практик или шаблонов в больших средах. «Бросай рано, лови поздно», - слышал я много раз, и это все еще смущает меня. …


8
Зачем использовать try… наконец без предложения catch?
Классический способ программирования с try ... catch. Когда уместно использовать tryбез catch? В Python следующее кажется законным и может иметь смысл: try: #do work finally: #do something unconditional Тем не менее, код ничего не сделал catch. Точно так же можно подумать, что в Java это будет выглядеть следующим образом: try …

13
Это хорошая практика, чтобы поймать проверенное исключение и выдать RuntimeException?
Я прочитал некоторый код коллеги и обнаружил, что он часто перехватывает различные исключения, а затем всегда выдает «RuntimeException». Я всегда думал, что это очень плохая практика. Я ошибаюсь?

3
Почему спецификации исключений плохие?
В школе более 10 лет назад они учили вас использовать спецификаторы исключений. Так как мой фон, как один из них Torvaldish Программисты, которые упорно избегает C ++, если не принуждал, я только в конечном итоге в C ++ спорадически, и когда я делаю, я до сих пор используют исключения спецификаторов, …

6
Обходной путь для проверенных исключений Java
Я высоко ценю новые функции Java 8, касающиеся лямбд и интерфейсов методов по умолчанию. Тем не менее, я все еще скучаю с проверенными исключениями. Например, если я просто хочу перечислить все видимые поля объекта, я хотел бы просто написать это: Arrays.asList(p.getClass().getFields()).forEach( f -> System.out.println(f.get(p)) ); Тем не менее, поскольку getметод …

8
Зачем разрабатывать современный язык без механизма обработки исключений?
Многие современные языки предоставляют богатые функции обработки исключений , но язык программирования Apple Swift не предоставляет механизм обработки исключений . Несмотря на то, что я погружен в исключения, мне трудно понять, что это значит. Swift имеет утверждения и, конечно, возвращает значения; но мне сложно представить, как мой образ мышления, основанный …

5
я должен бросить исключение из конструктора?
Я знаю, что я могу выбросить исключение из конструктора в PHP, но я должен это сделать? Например, если значение параметра не соответствует ожиданиям. Или я должен отложить создание исключения до вызова метода. Каковы преимущества и недостатки в обоих случаях?

8
Существуют ли законные причины для возврата объектов-исключений вместо их выброса?
Этот вопрос предназначен для применения к любому языку программирования ОО, который поддерживает обработку исключений; Я использую C # только в иллюстративных целях. Исключения обычно предназначены для возникновения, когда возникает проблема, что код не может быть обработан немедленно, а затем для перехвата в catchпредложении в другом месте (обычно это кадр внешнего …

4
Почему скобки требуются для try-catch?
На разных языках (по крайней мере, на Java, подумайте также C #?) Вы можете делать такие вещи, как if( condition ) singleStatement; while( condition ) singleStatement; for( var; condition; increment ) singleStatement; Поэтому, когда у меня есть только одно утверждение, мне не нужно добавлять новую область с помощью { }. …

5
Как бороться с проверенными исключениями, которые никогда не могут быть выброшены
Пример: foobar = new InputStreamReader(p.getInputStream(), "ISO-8859-1"); Поскольку кодировка жестко запрограммирована и корректна, конструктор никогда не сгенерирует исключение UnsupportedEncodingException, объявленное в спецификации (если только реализация java не нарушена, в этом случае я все равно теряюсь). Во всяком случае, Java заставляет меня все равно иметь дело с этим исключением. В настоящее время …

7
Может быть, монада против исключений
Интересно, в чем преимущества Maybe монады перед исключениями? Похоже, Maybeэто просто явный (и довольно трудоемкий) способ try..catchсинтаксиса. обновление Пожалуйста, обратите внимание, что я намеренно не упоминаю Haskell.

4
Бросить исключение внутри наконец
Статические анализаторы кода, такие как Fortify, «жалуются», когда в finallyблоке может возникнуть исключение , говоря это Using a throw statement inside a finally block breaks the logical progression through the try-catch-finally. Обычно я согласен с этим. Но недавно я наткнулся на этот код: SomeFileWriter writer = null; try { //init …

12
Является ли «наконец» часть конструкции «попробуй ... поймай ... наконец» даже необходимой?
Некоторые языки (такие как C ++ и ранние версии PHP) не поддерживают finallyчасть try ... catch ... finallyконструкции. Когда- finallyлибо необходимо? Поскольку код в нем всегда выполняется, почему бы не разместить этот код после try ... catchблока без finallyпредложения? Зачем использовать один? (Я ищу причину / мотивацию для использования / …

3
Должен ли сервисный уровень перехватывать все исключения dao и переносить их в исключения сервиса?
У меня есть три слоя Spring веб-приложение: дао, сервис и контроллеры. Контроллер никогда не вызывает напрямую dao, он делает это через уровень сервиса. Прямо сейчас, в большинстве случаев, если есть исключение dao (время выполнения), которое не обрабатывается, оно будет перехвачено JSP, показывающим сообщение об ошибке конечному пользователю. Должен ли сервисный …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.