何时在异常处理期间使用if-else语句或try-except语句?

时间:2017-09-30 11:23:43

标签: python-3.x

例如,我有这段代码片段,它为我做了一些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

两者都有效但我对如何使用其中一种以及何时使用它们感到有点困惑。

0 个答案:

没有答案