Подтвердить что ты не робот

Это плохая форма, чтобы поднять ArgumentError вручную?

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

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

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

Или, если вы поднимете Exception?

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

4b9b3361

Ответ 1

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

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

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