Вот простой код:
import sys
class EmptyArgs(StandardError):
pass
if __name__ == "__main__":
#first way to raise exception
if len(sys.argv) == 1:
raise EmptyArgs
#second way to raise exception
if len(sys.argv) == 1:
raise EmptyArgs()
Какой путь "более" правильный? Оба работают.
Примечание. В моем реальном коде исключение точно такое же, как я заявил: без сообщений и аргументов.