私は自動化された手順のスクリプトを書いています。このテストでは、Paramikoを介したSSH接続が使用されますが、何らかの理由で(システム関連)システムのリブートが行われ、SSH接続が閉じられます。 Pythonは、接続が強制的に閉じられたというエラーをスローします。Pythonが例外文を破棄して続行します
私は、プログラムがエラーをcatchするexcept文で、ssh接続を復元してから最初にエラーが発生した場所から続行します。
コードを投稿することあまりにも長いですが、基本的に、私は次の操作を実行するために探しています:
try:
dotesting()
except ParamikoError():
restoressh()
#here i want to break out and get back into dotesting()
私は、これは「後藤」はひんしゅくを買うと利用できていないことを考えれば可能であるか分かりませんPythonで。これをどうやって実行するのですか?
EDIT
だから私がもともとしたいことはできません。今Imは本当にくだらない答えはあなたのプログラムを書き、次に文字列のリストとして保存することですdotesting()
def dotesting():
try:
stepone()
except ParamikoError():
#Need to restart step here, want to flow into steptwo() below
try:
steptwo()
except ParamikoError():
#Need to restart step here, want to flow into the return statement below
return("Success")
例外が発生した場所に戻ることはできません。あなたはたいてい*再起動* 'dotesting()'することができます。そのためにループを使用するだけです。 –
そうでなければ、各ステップで例外をキャッチしてそのステップだけを再開できるように、SSH上で実行しているステップを打ち破るために 'dotesting()'をリファクタリングする必要があります。 –
@MartijnPietersこれは理にかなっています。私はこれが私のケースではうまくいくかもしれないので、あなたが作った提案を反映するために質問を更新しました – bladexeon