Когда я должен использовать нуль в динамически типизированных языках? - PullRequest
1 голос
/ 15 октября 2011

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

Что, по мнению сообщества, нужно возвращать, когда в функциях, использующих язык с динамической типизацией, дела идут неправильно?

Мои общие мысли:

  1. если вы возвращаете фактическое значение, вы должны либо вернуть данные с использованием этого типа, если функция успешно выполнена, либо null, если что-то было неожиданным.

  2. исключения исключения должны быть зарезервированы для общих служебных функций

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

Ответы [ 2 ]

7 голосов
/ 15 октября 2011

Когда возникает исключение (в значении слова), выдается исключение. null - это что-то вроде «ничего», это не означает, что возникает ошибка. Например, find() -метод может возвращать null, если ничего не найдено, что соответствует некоторым заданным критериям. Когда вы определяете null как «ошибку», тогда у вас есть своего рода магическое значение, такое как старые добрые «магические числа», которые всегда должны быть задокументированы и тому подобное.

0 голосов
/ 15 октября 2011

Я задаю вопрос, используя пользовательские исключения. Звучит сложно.

сделать это: передать переменные по ссылке, чтобы вернуть ваши данные, и использовать возвращаемое значение bool для успеха / неудачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...