Какое исключение выбрасывает clone_from ()?Есть ли общий способ определения исключения? - PullRequest
0 голосов
/ 18 июня 2019

Я хотел бы написать немного кода, чтобы перехватить исключение, сгенерированное git.Repo.clone_from () при получении URL-адреса несуществующего репо.Мне интересно, какой тип исключения возникает здесь, так как в трассировке, похоже, не определено ни одного конкретного.

Я пытался перехватить Exception и git.exc.GitError, но ни одна из них не работает.Код работает, когда я использую универсальный, кроме блока, без идентификации конкретного исключения, но мне бы очень хотелось точно знать, какое исключение я должен искать.

Например, следующее выведет «success!»

def foo():

    try:

        git.Repo.clone_from('non_existant_repo_URL',os.getcwd()+'\\something')

    except:

        print('success!')

, но следующее просто выведет сообщение об ошибке без доступа к блоку кроме:

def foo():

    try:
        git.Repo.clone_from('non_existant_repo_URL',os.getcwd()+'\\something')

    except <Exception or git.exc.GitError> as e:

        print('success!')

ошибка, отображаемая при запуске второго блока:

Cmd('git') failed due to: exit code(128)
  cmdline: git clone -v non_existant_repo_URL <working directory>
  stderr: 'Cloning into '<working directory>'...
remote: Repository non_existant_repo_URL not found
fatal: repository 'non_existant_repo_URL' not found
...