Я хотел бы написать немного кода, чтобы перехватить исключение, сгенерированное 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