API-异常
GPIO Zero 定义了以下异常。请注意,异常层次结构中大量使用了多重继承,以便更轻松地测试异常。例如,要捕获 GPIO Zero 代码生成的任何异常:
from gpiozero import *
led = PWMLED(17)
try:
led.value = 2
except GPIOZeroError:
print('A GPIO Zero error occurred')
由于所有 GPIO Zero 的异常都继承自 GPIOZeroError,因此这将起作用。但是,某些特定错误具有多个父类。例如,如果将超出范围的值传递给 OutputDevice.value,您会期望引发 ValueError。实际上,将引发 OutputDeviceBadValue 错误。但是,请注意,它既继承自 GPIOZeroError(间接),又继承自 ValueError,因此您仍然可以执行显而易见的操作:
from gpiozero import *
led = PWMLED(17)
try:
led.value = 2
except ValueError:
print('Bad value specified')