Описание тега defensive-programming

Defensive programming is a form of defensive design intended to ensure the continuing function of a piece of software in spite of unforeseeable usage of said software. Defensive programming techniques are used especially when a piece of software could be misused mischievously or inadvertently to catastrophic effect.
1 ответ

Класс исключения объявлен, но не брошен

Здесь тест не выбрасывает объект Exception, но я его обработал. Поскольку исключение является проверенным исключением, оно не должно вызывать ошибку компилятора недоступного кода в блоке catch class Ece extends Exception {} public class Excep { publ…
5 ответов

Является ли этот код защитным программированием или плохой практикой?

У меня есть спор с моим коллегой об этом куске кода: var y = null; if (x.parent != null) y = x.parent.somefield; Моя точка зрения заключается в том, что в том месте, где код, x.parent НЕ МОЖЕТ БЫТЬ НУЛЬ. И когда это ноль, у нас есть серьезная пробле…
07 мар '14 в 00:46
14 ответов

Насколько оборонительно я должен программировать?

Я работал с небольшой подпрограммой, которая используется для создания подключения к базе данных: До public DbConnection GetConnection(String connectionName) { ConnectionStringSettings cs= ConfigurationManager.ConnectionStrings[connectionName]; DbPr…
2 ответа

Добавить защитную копию объекта в хешсет

В настоящее время у меня есть этот код: public final class Tutor { private String name; private final Set<Student> tutees; public Tutor(String name, Student[] students){ this.name = name; tutees = new HashSet<Student>(); for (int i = 0; …
3 ответа

Как я могу проверить аргументы в методе из интерфейса, не нарушая принцип СУХОЙ

У меня есть следующий код: public interface Person { /*** *@Throws Exception x must be greater than 0 ****/ setAge(int x); } public class Man implements Person { setAge(int x) { if(x <= 0) thrown new Exception("x <= "); } } Я нарушил принцип С…
30 ноя '14 в 06:22
7 ответов

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

У меня есть два разных типа строк, которые я передаю и использую в своем коде, и они тесно связаны, но их не следует путать друг с другом. Я думал, что смогу помочь себе избежать ошибок, имея два класса, которые являются просто строками, но с разным…
2 ответа

Будет ли макрос `assert` удален в C++20?

Согласно cppreference, assert будет использоваться как атрибут C++. Тем не менее, уже существуют тонны проектов, сильно зависящих от макроса assertЕсть ли плохой эффект?
3 ответа

Можно ли сделать этот класс более неизменным?

package main; import java.util.Collections; import java.util.HashSet; import java.util.Set; public final class Tutor { private final String name; private final Set<Student> tutees; public Tutor(String name, Student[] students) { this.name = na…
1 ответ

IOrderedEnumerable и защитное программирование

Я увлекаюсь защитным программированием. Я ненавижу бросать исключения, но это не предмет моего вопроса. Я адаптировал расширение для linQ, чтобы иметь возможность выполнять заказ с именем столбца public static IEnumerable<T> OrderBy<T>(t…
6 ответов

Как еще можно оптимизировать этот код для защитного программирования?

Для моего проекта структур данных цель состоит в том, чтобы прочитать в предоставленном файле, содержащем более 10000 песен, с четко обозначенным исполнителем, названием и текстом, и каждая песня отделена строкой с одной двойной кавычкой. Я написал …
21 сен '10 в 01:39
7 ответов

C Синтаксис Вопрос

Считается ли плохим кодированием ставить разрыв в части по умолчанию оператора switch? В книге, которую я читал, говорилось, что она не обязательна, но учитель рассчитывал на ее использование.
19 сен '11 в 20:10
3 ответа

Получение значимых сообщений об ошибках от fstream в C++

Каков наилучший способ получить осмысленные сообщения об ошибках доступа к файлам переносимым способом из std::fstreams? Примитивность badbits а также failbits становится немного раздражающим. Я уже писал свои собственные иерархии исключений для win…
2 ответа

Безопасный по умолчанию уровень Django ORM --- как?

Я управляю магазином Django, где мы обслуживаем каждого нашего клиента графом объектов, который полностью отделен от графов всех других клиентов. Данные являются умеренно чувствительными, поэтому я не хочу, чтобы какая-либо из них передавалась от од…
17 фев '13 в 04:28
5 ответов

Конструкторы копирования и защитное копирование

Что такое конструктор копирования ? Может ли кто-нибудь поделиться небольшим примером, который может быть полезен для понимания наряду с защитным принципом копирования ?
22 фев '13 в 09:31
2 ответа

CLR: если конструктор потерпит неудачу, он всегда будет выдавать исключение?

В Delphi, если во время создания объекта возникло исключение: любая выделенная память будет освобождена и будет сгенерировано исключение. Например, следующее гарантированно либо вернет действительный Camera возразить или сгенерировать исключение: Ca…
28 июн '09 в 04:14
1 ответ

Как сообщить об ошибках в R?

Обновление: Вопрос закрыт, теперь обсуждается на платформе RStudio Community. Я пытаюсь защищаться при разработке пакета, используя много проверок ввода. В частности, я полагаюсь на множество готовых утверждений в checkmate, testthat и т. П., Которы…
4 ответа

Основное защитное программирование

Возможный дубликат: Любимые (Умные) Лучшие Практики Защитного Программирования Некоторые программисты всегда советуют мне сосредоточиться на легкой отладке. Что такое защитное программирование и в какой степени его следует учитывать во время практик…
19 дек '09 в 11:24
1 ответ

Каков наилучший способ отправки защитной копии данных?

Я только что прочитал эффективное правило Java 39 (Защитная копия). В явном виде не указывается, что для каждой транзакции данных должно выполняться два раза копирования, чтобы следовать этому правилу. Ниже приведен пример кода, который я подумал. Э…
06 янв '18 в 14:26
4 ответа

Защитные копии Java

Я видел защитные копии, закодированные так void someMethod(Date d) { myDate = new Date( d.getTime() ); } Но это не имеет смысла для меня, разве в Java нет способа создать идентичную копию в памяти этого объекта? Я прочитал clone() не будет работать …
10 фев '10 в 04:38
4 ответа

Надежная структура кода?

Я ненавижу писать код, который делает мое программное обеспечение более надежным. Это то, что должна была сделать структура! Итак, кто-нибудь знает об утилите "улучшения" кода, которая укрепляет код? Если бы мне пришлось самому создать что-то подобн…