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:」も試しました。それらのどれも例外を正しくキャッチしていないようで、それを処理させてくれます。