首页 > 解决方案 > 有没有办法处理 Python 中第三方模块抛出的错误?

问题描述

即使使用 try/except 块,Python 似乎也不会捕获该块中调用的函数或模块引发的错误。这没有意义。它有特定的语法吗?我似乎无法捕捉 BeautifulSoup 抛出的 UnicodeDecodeError 。当 BeautifulSoup 无法读取文件时,我只想能够捕获错误并将 temp 的内容复制到 temp1。

from bs4 import BeautifulSoup
with open('/mnt/data/opendata/work/temp.txt', 'r') as f:
    contents = f.read()
    try:
        soup = BeautifulSoup(contents, 'lxml')
        with open('/mnt/data/opendata/work/temp1.txt', 'w') as f1:
            f1.write(str(soup))
    except:
        with open('/mnt/data/opendata/work/temp1.txt', 'w') as f1:
            f1.write(contents)

标签: pythonexceptionbeautifulsoup

解决方案


推荐阅读