Какое исключение я должен поднять на неправильные / недопустимые комбинации аргументов в Python?

Неправильно просто отключить JComboBox?

setEnabled(false);
476
задан sth 2 November 2011 в 19:26
поделиться

4 ответа

Я просто повысил бы ValueError, если Вам не нужно более определенное исключение..

def import_to_orm(name, save=False, recurse=False):
    if recurse and not save:
        raise ValueError("save must be True if recurse is True")

нет действительно никакого смысла в выполнении class BadValueError(ValueError):pass - Ваш пользовательский класс идентичен используемый к ValueError, итак, почему бы не использовать это?

535
ответ дан izrik 3 November 2011 в 06:26
поделиться
  • 1
    Согласитесь, что Счетчик является лучшим способом пойти, если Вы хотите считать вещи также. Но если Вы просто хотите лучшие 3 значения в уже созданном dict, он походит на излишество.:) – Maria Zverina 11 August 2012 в 00:36

Я наследовался бы от ValueError

class IllegalArgumentError(ValueError):
    pass

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

, Если необходимо зафиксировать ту определенную ошибку, полезно иметь имя.

97
ответ дан Markus Jarderot 3 November 2011 в 06:26
поделиться
  • 1
    Это зависит от размера словаря. Сортировка словаря является O (n, регистрируют n), создавание Счетчика и извлечение k самый большой только O (n, регистрируют k). Для большого n и маленький k, который делает опцию Counter намного более эффективной. – Duncan 11 August 2012 в 01:20

Я не уверен, что соглашаюсь с наследованием от ValueError - моя интерпретация документации - то, что ValueError только , которые, как предполагают, были повышены builtins... наследовавшимся ему, или повышающий это самостоятельно кажется неправильным.

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

- документация ValueError

-1
ответ дан cdleary 3 November 2011 в 06:26
поделиться
  • 1
    Исполняемые файлы Дальвика могут быть изменены снова, когда установлено на мобильное устройство. Для получения дальнейшей оптимизации порядок байтов может быть подкачан в определенных данных, простые структуры данных и библиотеки функций могут быть связаны могут быть закорочены, встроенные, и пустые объекты класса. – user370305 7 July 2012 в 22:42

Я главным образом только что видел встроенное ValueError используемый в этой ситуации.

9
ответ дан Eli Courtwright 3 November 2011 в 06:26
поделиться
  • 1
    Спасибо @user370305 (+1) - Ваш ответ сильно в сравнении различий между JVM Дальвика и " Java compliant" JVM, однако это все еще не объясняет определенная причина , почему у меня может быть проект Java, который содержит мой собственный код и зависимости от Camel Apache, и имейте его, хорошо работают на нормальной JVM, но Дальвик может только выполнять мой код . он, потому что мой код кросс-скомпилировать dx, и тот Camel Apache был уже скомпилирован (чем-то othher, чем dx)? , Если that' s случай, тогда наконец, я " получите it". еще раз спасибо! – IAmYourFaja 7 July 2012 в 22:35
Другие вопросы по тегам:

Похожие вопросы: