例如,我有这段代码片段,它为我做了一些HTML解析。
from bs4 import BeautifulSoup
class Parser:
def __init__(self, html_data=None):
if html_data:
self.bs = BeautifulSoup(html_data, 'html.parser')
def setBS(self, html_data):
self.bs = BeautifulSoup(html_data, 'html.parser')
def getLinksByID(self, target_id):
elements = self.bs.find_all(id=target_id)
links = []
for element in elements:
try:
links.append(element.find('a')['href'])
except TypeError:
pass
return links
def getLinksByClass(self, target_class):
elements = self.bs.find_all(class_=target_class)
links = []
for element in elements:
try:
links.append(element.find('a')['href'])
except TypeError:
pass
return links
在处理异常时,我遇到了决定何时使用Try-Except语句而不是If-Else语句的问题,反之亦然。
例如,而不是这样做
def __init__(self, html_data=None):
if html_data:
self.bs = BeautifulSoup(html_data, 'html.parser')
我应该这样做吗
def __init__(self, html_data=None):
try:
self.bs = BeautifulSoup(html_data, 'html.parser')
except:
pass
两者都有效但我对如何使用其中一种以及何时使用它们感到有点困惑。