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

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

220
Почему многие сообщения об исключениях не содержат полезных деталей?

Кажется, существует определенное соглашение о том, что сообщения об исключениях должны содержать полезные детали . Почему многие распространенные исключения из системных компонентов не содержат полезных деталей? Несколько примеров: .NET Listдоступ индекса ArgumentOutOfRangeExceptionникак не говорит...

161
Являются ли нулевые ссылки действительно плохой вещью?

Я слышал, что включение нулевых ссылок в языки программирования является «ошибкой в ​​миллиард долларов». Но почему? Конечно, они могут вызывать NullReferenceExceptions, но что с того? Любой элемент языка может быть источником ошибок при неправильном использовании. И какая альтернатива? Я полагаю,...

129
Являются ли исключения в качестве контрольного потока серьезным антипаттерном? Если так, то почему?

Еще в конце 90-х я довольно много работал с базой кода, которая использовала исключения в качестве управления потоком. В нем реализован конечный автомат для управления приложениями телефонии. В последнее время мне вспоминаются те дни, потому что я занимался веб-приложениями MVC. У них обоих есть...

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

Я занимаюсь разработкой библиотеки, предназначенной для публичного выпуска. Он содержит различные методы для работы с наборами объектов - генерация, проверка, разбиение и проецирование наборов в новые формы. Если это уместно, это библиотека классов C # с включенными расширениями в стиле LINQ...

101
Как написать хорошее сообщение об исключении

В настоящее время я делаю обзор кода, и одна из вещей, на которые я обращаю внимание, - это число исключений, когда сообщение об исключении, кажется, просто повторяет, где произошло исключение. например throw new Exception("BulletListControl: CreateChildControls failed."); Все три пункта в этом...

99
Мне сказали, что исключения должны использоваться только в исключительных случаях. Как я узнаю, является ли мой случай исключительным?

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

88
Лучше использовать assert или IllegalArgumentException для обязательных параметров метода?

В Java, что более рекомендуется и почему? Оба типа будут генерировать исключения, поэтому обработка их одинакова. assertнемного короче, но я не уверен, насколько это важно. public void doStuff(Object obj) { assert obj != null; ... } против public void doStuff(Object obj) { if (obj == null) { throw...

88
Проверьте сначала против обработки исключений?

Я работаю над книгой «Head First Python» (это мой язык для изучения в этом году), и я попал в раздел, где они спорят о двух методах кода: Проверка First против Exception обработка. Вот пример кода Python: # Checking First for eachLine in open("../../data/sketch.txt"): if eachLine.find(":") != -1:...

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

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

80
Исключения, коды ошибок и дискриминационные союзы

Я недавно начал работу по программированию на C #, но у меня есть немного опыта в Haskell. Но я понимаю, что C # является объектно-ориентированным языком, я не хочу вбивать круглый колышек в квадратное отверстие. Я прочитал статью « Исключение исключений» от Microsoft, в которой говорится: НЕ...

79
Зачем использовать try… наконец без предложения catch?

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

76
Почему арифметическое переполнение игнорируется?

Вы когда-нибудь пытались суммировать все числа от 1 до 2 000 000 на вашем любимом языке программирования? Результат легко вычислить вручную: 2 000 001 000 000, что примерно в 900 раз превышает максимальное значение 32-разрядного целого числа без знака. C # распечатывает -1453759936- отрицательное...

70
Это хорошая практика, чтобы поймать проверенное исключение и выдать RuntimeException?

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

64
Наличие флага, указывающего, должны ли мы выдавать ошибки

Я недавно начал работать в месте с некоторыми намного более старшими разработчиками (приблизительно 50 лет). Они работали над критическими приложениями, касающимися авиации, где система не могла выйти из строя. В результате старший программист имеет тенденцию кодировать этот путь. Он имеет...

58
Действительно ли ловить общие исключения - это плохо?

Я обычно согласен с большинством предупреждений анализа кода и стараюсь их придерживаться. Тем не менее, мне сложнее с этим: CA1031: не перехватывать общие типы исключений Я понимаю обоснование этого правила. Но на практике, если я хочу предпринять одно и то же действие независимо от выданного...

57
Почему в C ++ нет конструкции finally?

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

52
Сгенерировать исключение или дать сбою

Мне интересно, есть ли плюсы и минусы против этого стиля: 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}",...

50
Почему спецификации исключений плохие?

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

49
Обходной путь для проверенных исключений Java

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