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

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

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

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

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

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


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

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

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

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

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

5
Использование условия finally для выполнения работы после возврата плохой стиль / опасно?
Как часть написания Iterator, я обнаружил, что пишу следующий фрагмент кода (обработка ошибок) public T next() { try { return next; } finally { next = fetcher.fetchNext(next); } } немного легче читать, чем public T next() { T tmp = next; next = fetcher.fetchNext(next); return tmp; } Я знаю, что …

7
Как лечить необработанные исключения? (Завершить приложение против сохранить его в живых)
Что лучше всего делать, когда в настольном приложении возникают необработанные исключения? Я думал о том, чтобы показать сообщение пользователю, чтобы он мог связаться со службой поддержки. Я бы порекомендовал пользователю перезапустить приложение, но не заставлять его. Подобно тому, что обсуждается здесь: ux.stackexchange.com - Как лучше всего обрабатывать неожиданные ошибки приложения? …

7
Должна ли программа на C ++ перехватывать все исключения и предотвращать всплытие исключений после main ()?
Однажды мне посоветовали, что программа на C ++ должна в конечном итоге перехватывать все исключения. В то время аргументация сводилась к тому, что программы, допускающие появление исключений за пределами, main()переходят в странное состояние зомби. Мне сказали об этом несколько лет назад, и в ретроспективе я считаю, что наблюдаемое явление было …
29 c++  exceptions 

7
Можно ли использовать исключения в качестве инструментов для раннего выявления ошибок?
Я использую исключения, чтобы поймать проблемы рано. Например: public int getAverageAge(Person p1, Person p2){ if(p1 == null || p2 == null) throw new IllegalArgumentException("One or more of input persons is null"). return (p1.getAge() + p2.getAge()) / 2; } Моя программа никогда не должна переходить nullв эту функцию. Я никогда не …

12
В чем проблемы разработчика с полезными сообщениями об ошибках? [закрыто]
Закрыто . Этот вопрос нуждается в деталях или ясности . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Добавьте детали и проясните проблему, отредактировав этот пост . Закрыто 5 лет назад . Меня по-прежнему поражает, что в наши дни продукты, которые годами используются под ленточным движением, созданные командами …

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