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

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

12
Действительно ли ловить общие исключения - это плохо?
Я обычно согласен с большинством предупреждений анализа кода и стараюсь их придерживаться. Тем не менее, мне сложнее с этим: CA1031: не перехватывать общие типы исключений Я понимаю обоснование этого правила. Но на практике, если я хочу предпринять одно и то же действие независимо от выданного исключения, зачем мне обращаться с …
58 c#  design  exceptions 

7
Почему в C ++ нет конструкции finally?
Обработка исключений в C ++ ограничена попыткой / throw / catch. В отличие от Object Pascal, Java, C # и Python, даже в C ++ 11 finallyконструкция не была реализована. Я видел очень много литературы по С ++, обсуждающей «код, исключающий исключение». Липпман пишет, что безопасный код исключений - это …
57 c++  exceptions 

9
Сгенерировать исключение или дать сбою
Мне интересно, есть ли плюсы и минусы против этого стиля: private void LoadMaterial(string name) { if (_Materials.ContainsKey(name)) { throw new ArgumentException("The material named " + name + " has already been loaded."); } _Materials.Add( name, Resources.Load(string.Format("Materials/{0}", name)) as Material ); } Этот метод должен nameбыть запущен только один раз. _Materials.Add()сгенерирует …
52 exceptions 

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

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

4
Почему итераторы в 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: break print(value) Я думал, что исключения должны были использоваться только …

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

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

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

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

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

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

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

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

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

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