私はネットワーク上でAsyncioを使ってPythonでアプリケーションを書いています。StreamReader.readexactly()はソケットエラーを引き起こしますが、StreamReader.read()を引き起こさないのはなぜですか?
try:
data = await self._reader.readexactly(10000)
# Code that uses data
except IncompleteReadError as e:
data = e.parial
# More code
このコードを実行しようとすると、実際には実行されないようです。 2行目にブレークポイントを設定すると、ブレークポイントはトリップしますが、残りの関数は無視されます。
私はエラーを取得近いものがasyncioロガーからこのです:data = await self._reader.read(10000)
と二行目の交換
Traceback (most recent call last):
File "c:\python36\Lib\asyncio\selector_events.py", line 724, in _read_ready
data = self._sock.recv(self.max_size)
ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machine
は、この問題を解決するために表示されますが、私の問題をread()
解決していない、私のようにする必要がありを使用してください。では、なぜはソケットエラーを引き起こしますが、read()
は発生しません。
なぜ例外ブロックが実行されないのですか?関数はその行で完全に終了します。 – ILikePizza555
"IncompleteReadError"をキャッチするだけなので、それを "Exception"に変更して、exceptブロックが実行され、例外の型がスローされるかどうかを確認してください – ddor254