Должен ли я использовать обработку исключений или проверять значения

Мне нужна помощь с концептуальной проблемой.

По сути, у меня есть некоторые данные из известного источника. Я знаю, что все данные потенциально могут не иметь значения. У меня есть два варианта.

Вариант 1: я могу проверить все данные перед их сохранением, чтобы предотвратить недопустимые исключения приведения

Вариант 2: я могу позволить ему генерировать исключение.

Теперь я точно знаю, что лучше всего использовать упреждающий метод обработки ошибок и проверять наличие нулей; однако я уверен, что из миллиона отображений из таблиц в объекты у меня будет не более 2-х ошибок. Должен ли я выдать исключение или выполнить проверку?

Люди обычно говорят делать проверку, потому что исключение требует больше ресурсов, чем простая проверка; однако, это тот случай, когда вам нужно сделать более миллиона проверок за исключением 1?


person Aelphaeis    schedule 03.09.2013    source источник
comment
Ресурсы/производительность на самом деле не являются основанием для этого решения, даже несмотря на то, что именно так проблема была сформулирована исторически. Решение должно основываться на том, является ли это управлением потоком или исключительным случаем. По вашему описанию похоже на второе.   -  person Keith Payne    schedule 03.09.2013


Ответы (2)


Исключения следует использовать в исключительных случаях. Два из миллиона кажутся мне исключительными.

person Daniel Hilgarth    schedule 03.09.2013

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

ВАЖНО Исключения должны происходить только в исключительных случаях, а не в обычном рабочем процессе.

person Bassam Alugili    schedule 03.09.2013