52 lines
1.1 KiB
Markdown
52 lines
1.1 KiB
Markdown
#### 1 BlockingIOError
|
||
|
||
错误描述:
|
||
|
||
```
|
||
BlockingIOError: [Errno 11] write could not complete without blocking
|
||
```
|
||
|
||
原因分析:
|
||
|
||
我面临的情况是子进程写管道,当前进程读管道,当前进程把子进程输出的信息打印出来。当子进程向管道写入信息太多时,管道阻塞,于是抛出此错误。
|
||
|
||
解决方法:
|
||
|
||
方法一:当产生此异常时执行`pass`,不管它。
|
||
|
||
方法二:减少要输出的信息。
|
||
|
||
方法三:将管道设置为非阻塞
|
||
|
||
#### 2 UnicodeDecodeError
|
||
|
||
错误描述:
|
||
|
||
```
|
||
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8e in position 2816: invalid start byte
|
||
```
|
||
|
||
原因分析:
|
||
|
||
这应该是文本里混入了非utf-8编码,然而我用xxd命令却没查到0x8e这个数字。
|
||
|
||
解决方法:
|
||
|
||
应该是把非utf-8编码改为utf-8编码。
|
||
|
||
#### 3
|
||
|
||
错误描述:
|
||
|
||
```
|
||
Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>
|
||
```
|
||
|
||
原因分析:
|
||
|
||
应该还是输出信息太多引起的
|
||
|
||
解决方法:
|
||
|
||
当出现异常`BrokenPipeError`和`IOError`的时候执行`pass`。
|