簡體   English   中英

如何捕獲 github 異常

[英]How to catch a github exception

我試圖從 Github 獲得提交。 但是我遇到了409錯誤,我想在它失敗后重試。 我認為問題在於沒有從 GithubExceptions 正確捕獲錯誤。

df_commits = pd.DataFrame(columns=['repo', 'commits', 'user' , 'created_at'])
    for repo in org.get_repos():
commits = repo.get_commits(since=datetime(2022, 9, 1))
for commits in commits:
    try:
        df_commits = df_commits.append({'repo': repo.name, 'commits': commits, 'user' : 
   commits.author, 'created_at' : commits.commit.author.date}, ignore_index=True)
    except:
        GithubException == 409
        print(GithubException)
        continue
Traceback (most recent call last):
  File "c:\Users\Q4V\Documents\VanOordProjects\Github\commits.py", line 16, in <module>
    for commits in commits:
  File "C:\Users\Q4V\AppData\Local\Programs\Python\Python310\lib\site-packages\github\PaginatedList.py", line 56, in __iter__
    newElements = self._grow()
  File "C:\Users\Q4V\AppData\Local\Programs\Python\Python310\lib\site-packages\github\PaginatedList.py", line 67, in _grow
    newElements = self._fetchNextPage()
  File "C:\Users\Q4V\AppData\Local\Programs\Python\Python310\lib\site-packages\github\PaginatedList.py", line 199, in _fetchNextPage
    headers, data = self.__requester.requestJsonAndCheck(
  File "C:\Users\Q4V\AppData\Local\Programs\Python\Python310\lib\site-packages\github\Requester.py", line 
353, in requestJsonAndCheck
    return self.__check(
  File "C:\Users\Q4V\AppData\Local\Programs\Python\Python310\lib\site-packages\github\Requester.py", line 
378, in __check
    raise self.__createException(status, responseHeaders, output)
github.GithubException.GithubException: 409 {"message": "Git Repository is empty.", "documentation_url": "https://docs.github.com/rest/commits/commits#list-commits"}

有幾種方法可以捕獲異常。 我將在下面僅舉兩個例子。 閱讀有關如何正確使用 try/except 塊的更多信息。 您的代碼的問題在於,您輸入的 GithubException 只是一個變量名,甚至可能沒有定義。

你可以試試:

for commit in commits:
    try:
        ...
    except Exception as e:
        print(f'got Exception {e}')
        continue

下面的塊將捕獲任何異常並繼續。

您可以更加復雜,並僅在給出特定錯誤消息時檢查回溯以繼續。

import traceback


for commit in commits:
    try:
        ...
    except Exception as e:
        tb = traceback.format_exc()
        if 'Git Repository is empty' in tb:
            print(f'The repo is empty!')
            continue
        else:
            ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM