Вопросы с тегом «exceptions»

48
Почему итераторы в Python вызывают исключение?

Вот синтаксис для итераторов в Java (несколько похожий синтаксис в C #): Iterator it = sequence.iterator(); while (it.hasNext()) { System.out.println(it.next()); } Что имеет смысл. Вот эквивалентный синтаксис в Python: it = iter(sequence) while True: try: value = it.next() except StopIteration:...

47
Зачем разрабатывать современный язык без механизма обработки исключений?

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

47
Почему метод не должен выдавать несколько типов проверенных исключений?

Мы используем SonarQube для анализа нашего Java-кода, и у него есть следующее правило (установлено как критическое): Публичные методы должны выдавать не более одного проверенного исключения Использование проверенных исключений вынуждает вызывающие методы обращаться с ошибками, распространяя их или...

46
я должен бросить исключение из конструктора?

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

45
Существуют ли законные причины для возврата объектов-исключений вместо их выброса?

Этот вопрос предназначен для применения к любому языку программирования ОО, который поддерживает обработку исключений; Я использую C # только в иллюстративных целях. Исключения обычно предназначены для возникновения, когда возникает проблема, что код не может быть обработан немедленно, а затем для...

45
Почему ошибки называются «Исключение», а не «Ошибка» в языках программирования?

Я долго об этом думал. Я сам не являюсь носителем английского языка, но все же имею многолетний опыт программирования, и я всегда спрашивал меня об этом. Почему он называется Исключением, а не ошибкой, поскольку они являются ошибками. Это может быть PageNotFoundErrorвместо...

44
Переменные ошибок - это анти-шаблон или хороший дизайн?

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

44
Прощение Python против Разрешения и Утиной Печати

В Python я часто слышу, что лучше «просить прощения» (перехват исключений), а не «спрашивать разрешение» (проверка типа / условия). Что касается принудительного набора утки в Python, это try: x = foo.bar except AttributeError: pass else: do(x) лучше или хуже чем if hasattr(foo, "bar"): do(foo.bar)...

44
Распространение исключений: когда я должен ловить исключения?

MethodA вызывает MethodB, который, в свою очередь, вызывает MethodC. Нет обработки исключений в MethodB или MethodC. Но в MethodA есть обработка исключений. В MethodC происходит исключение. Теперь это исключение всплывает в методе А, который обрабатывает его соответствующим образом. Что не так с...

42
Должен ли я выбросить исключение в случае значимого значения вне диапазона или обработать его самостоятельно?

Я написал структуру, которая представляет координаты широты / долготы. Их значения варьируются от -180 до 180 для долгот и от 90 до -90 для широт. Если пользователь этой структуры дает мне значение вне этого диапазона, у меня есть 2 варианта: Бросить исключение (arg вне диапазона) Преобразовать...

40
Существуют ли реальные случаи для C ++ без исключений? [закрыто]

В Когда использовать C над C ++ и C ++ над C? есть утверждение относительно к размеру кода / C ++ исключения: Джерри отвечает (среди прочего): (...) Сложно создать действительно крошечные исполняемые файлы на C ++. Для действительно небольших систем вы все равно редко пишете много кода, а...

40
Должен ли я принимать пустые коллекции в моих методах, которые проходят по ним?

У меня есть метод, где вся логика выполняется внутри цикла foreach, который перебирает параметр метода: public IEnumerable<TransformedNode> TransformNodes(IEnumerable<Node> nodes) { foreach(var node in nodes) { // yadda yadda yadda yield return transformedNode; } } В этом случае...

39
Почему «ссылка на объект не установлена ​​для экземпляра объекта» не говорит нам, какой объект?

Мы запускаем систему и иногда получаем известное исключение NullReferenceExceptionс сообщением Object reference not set to an instance of an object. Тем не менее, в методе, где у нас есть почти 20 объектов, наличие журнала, в котором говорится, что объект нулевой, на самом деле вообще бесполезен....

38
Использование утверждений против создания исключений?

Часто, когда я пишу функцию, я хочу убедиться, что входные данные для нее действительны, чтобы как можно раньше обнаружить такие ошибки (я считаю, что это называется предварительными условиями). Когда предварительное условие не выполняется, я всегда выбрасываю исключение. Но я начинаю сомневаться в...

34
Может быть, монада против исключений

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

34
Общепринято ли вызывать NotImplementedError для методов, реализация которых находится на рассмотрении, но не планируется абстрагироваться?

Мне нравится поднимать NotImplementedErrorдля любого метода, который я хочу реализовать, но там, где я еще не удосужился сделать это. Возможно, у меня уже есть частичная реализация, но добавьте ее, raise NotImplementedError()потому что она мне пока не нравится. С другой стороны, мне также нравится...

33
Как я могу создавать и применять контракты для исключений?

Я пытаюсь убедить руководство своей команды разрешить использование исключений в C ++ вместо возврата bool isSuccessfulили enum с кодом ошибки. Однако я не могу противостоять его критике. Рассмотрим эту библиотеку: class OpenFileException() : public std::runtime_error { } void B(); void C(); /**...

33
Является ли создание исключения анти-паттерном здесь?

Я только что обсудил выбор дизайна после обзора кода. Интересно, каково ваше мнение? Есть этот Preferencesкласс, который является контейнером для пар ключ-значение. Нулевые значения допустимы (это важно). Мы ожидаем, что некоторые значения еще не могут быть сохранены, и мы хотим обрабатывать эти...

31
Вопросы обработки ошибок

Проблема: В течение долгого времени я беспокоился о exceptionsмеханизме, потому что я чувствую, что он действительно не решает, что он должен. ПРЕТЕНЗИЯ: Есть долгие дебаты по этой теме, и большинство из них пытаются сравнить с exceptionsвозвратом кода ошибки. Это определенно не тема здесь. Пытаясь...