在Python中,要想引发异常,最简单的形式就是输入关键字raise,后跟要引发的异常的名称。异常名称标识出具体的类: Python异常处理是那些类的对象。执行raise语句时,Python会创建指定的异常类的一个对象。raise语句还可指定对异常对象进行初始化的参数。为此,请在异常类的名称后添加一个逗号以及指定的参数(或者由参数构成的一个元组)。
例如:在scrapy官网可以看到,scrapy异常处理的丢弃item中的DropItem()异常处理。
验证价格,同时丢弃没有价格的item
from scrapy.exceptions import DropItem
class PricePipeline(object):
vat_factor = 1.15
def process_item(self, item, spider):
if item['price']:
if item['price_excludes_vat']:
item['price'] = item['price'] * self.vat_factor
return item
else:
raise DropItem("Missing price in %s" % item)
对于对应的异常类,到scrapy的官网去观看。
http://scrapy-chs.readthedocs.io/zh_CN/0.24/topics/exceptions.html