0

SVN データベースに接続し、フォルダー/ファイルをチェックアウトする関数があります。正しいログイン情報が与えられると、正常に処理されます。ただし、間違ったログイン情報が与えられると、pysvn は例外を発生させてクラッシュします。エラーをキャッチして処理しようとしていますが、正しくキャッチできないようです:

コード (「svnlogin」にガベージ情報が含まれていると仮定):

def connect_and_checkout():
    client = pysvn.Client()
    client.callback_get_login = svnlogin

    try:
        client.checkout(svnurl(),
        './examples/pysvn')

    except (pysvn.ClientError) as e:
        print("error during svn command", e)    

期待される出力:

error during svn command, 'error'

実際の出力 (プログラムがクラッシュします):

svn: E235000: In file 'c:\buildroot\win64-vc-14.1-1.14.0\subversion-1.14.0\subversion\libsvn_client\checkout.c' line 88: assertion failed (svn_uri_is_canonical(url, scratch_pool))

例外パラメーターとして「pysvn.ClientError」に加えて、「svn」、「pysvn.svn」、「AssertionError」、「SvnException」、および空白の「except:」も試しました。それらのどれも例外を正しくキャッチしていないようで、それを処理させてくれます。

4

1 に答える 1