Плохо ли поднимать ArgumentError вручную? - PullRequest
15 голосов
/ 28 ноября 2011

Если вы хотите добавить дополнительную проверку, не предоставленную argparse, например:

if variable a == b then c should be not None 

... допустимо ли поднять ArgumentError самостоятельно?

Или вы должны поднять Exception вместо этого?

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

1 Ответ

19 голосов
/ 28 ноября 2011

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

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

Что касается повышения Exception s, я бы этого не сделал.Вы должны всегда вызывать конкретное исключение, чтобы вы знали, как обрабатывать его в коде.Отлов Exception объектов должен выполняться на самом высоком уровне в вашем приложении, чтобы перехватывать и регистрировать все пропущенные исключения.

...