私はPythonとプログラミング全般にかなり慣れていないので、おそらく簡単な質問ですが、現在、私のプログラムの改善に取り組んでおり、例外がキャッチされた場合にプログラムを続行する方法を理解できません。多分私はそれを間違った方法で見ていますが、例えば私はこれらの線に沿って何かを持っています:
self.thread = threading.Thread(target=self.run)
self.thread.setDaemon(True)
self.thread.start()
def run(self):
logging.info("Starting Awesome Program")
try:
while 1:
awesome_program(self)
except:
logging.exception('Got exception on main handler')
OnError(self)
def OnError(self):
self.Destroy()
明らかに、私は現在、エラーに達したときにプログラムを強制終了しています。awesome_programは、基本的にpyodbcを使用して、リモートデータベースに接続してクエリを実行します。この問題は、接続が失われたときに発生します。例外をキャッチしないと、プログラムがフリーズするだけなので、プログラムを強制終了する上記のように設定しますが、手動で再起動する人がいない場合、これは必ずしも理想的ではありません。プログラムを実行し続けるか、再プログラムする簡単な方法はありますか?構文が間違っていたり、プログラミングスキルが不十分だったりした場合は、遠慮なく私を怒らせてください。私は自分自身を教えようとしていますが、まだ非常に初心者であり、理解していないか、おそらく正しく行っていないことがたくさんあります。必要に応じて、さらに多くのコードを投稿できます。圧倒されることなく、どれだけ投稿すればいいのかわからなかった。