跳到主要内容

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')

错误

GPIOZeroError

class gpiozero.GPIOZeroError()

基类: Exception

GPIO Zero 中所有异常的基类。

DeviceClosed

class gpiozero.DeviceClosed()

基类: GPIOZeroError

尝试对已关闭的设备执行操作时引发的错误。

BadEventHandler

class gpiozero.BadEventHandler()

基类: GPIOZeroError, ValueError

指定具有不兼容原型的事件处理程序时引发的错误。

BadWaitTime

class gpiozero.BadWaitTime()

基类: GPIOZeroError, ValueError

指定了无效等待时间时引发的错误。

BadQueueLen

class gpiozero.BadQueueLen()

基类: GPIOZeroError, ValueError

指定了非正数队列长度时引发的错误。

BadPinFactory

class gpiozero.BadPinFactory()

基类: GPIOZeroError, ImportError

指定了未知的引脚工厂名称时引发的错误。

ZombieThread

class gpiozero.ZombieThread()

基类: GPIOZeroError, RuntimeError

线程未能在给定超时时间内终止时引发的错误。

CompositeDeviceError

class gpiozero.CompositeDeviceError()

基类: GPIOZeroError

CompositeDevice 层次结构特有错误的基类。

CompositeDeviceBadName

class gpiozero.CompositeDeviceBadName()

基类: CompositeDeviceError, ValueError

使用保留名称构造复合设备时引发的错误。

CompositeDeviceBadOrder

class gpiozero.CompositeDeviceBadOrder()

基类: CompositeDeviceError, ValueError

使用不完整的顺序构造复合设备时引发的错误。

CompositeDeviceBadDevice

class gpiozero.CompositeDeviceBadDevice()

基类: CompositeDeviceError, ValueError

当使用不继承自 Device 的对象构造复合设备时引发的错误。

EnergenieSocketMissing

class gpiozero.EnergenieSocketMissing()

基类: CompositeDeviceError, ValueError

未指定插座编号时引发的错误。

EnergenieBadSocket

class gpiozero.EnergenieBadSocket()

基类: CompositeDeviceError, ValueError

Energenie 传递无效插座编号时引发的错误。

SPIError

class gpiozero.SPIError()

基类: GPIOZeroError

与 SPI 实现相关的错误的基类。

SPIBadArgs

class gpiozero.SPIBadArgs()

基类: SPIError, ValueError

构造 SPIDevice 时给出无效参数时引发的错误。

SPIBadChannel

class gpiozero.SPIBadChannel()

基类: SPIError, ValueError

AnalogInputDevice 给出无效通道时引发的错误。

SPIFixedClockMode

class gpiozero.SPIFixedClockMode()

基类: SPIError, AttributeError

SPI 时钟模式无法更改时引发的错误。

SPIInvalidClockMode

class gpiozero.SPIInvalidClockMode()

基类: SPIError, ValueError

向 SPI 实现给出无效时钟模式时引发的错误。

SPIFixedBitOrder

class gpiozero.SPIFixedBitOrder()

基类: SPIError, AttributeError

SPI 位端序无法更改时引发的错误。

SPIFixedSelect

class gpiozero.SPIFixedSelect()

基类: SPIError, AttributeError

SPI 片选极性无法更改时引发的错误。

SPIFixedWordSize

class gpiozero.SPIFixedWordSize()

基类: SPIError, AttributeError

每字的位数无法更改时引发的错误。

SPIInvalidWordSize

class gpiozero.SPIInvalidWordSize()

基类: SPIError, ValueError

指定了无效(超出范围)的每字位数时引发的错误。

GPIODeviceError

class gpiozero.GPIODeviceError()

基类: GPIOZeroError

GPIODevice 层次结构特有错误的基类。

GPIODeviceClosed

class gpiozero.GPIODeviceClosed()

基类: GPIODeviceError, DeviceClosed

DeviceClosed 的已弃用子类。

GPIOPinInUse

class gpiozero.GPIOPinInUse()

基类: GPIODeviceError

尝试使用另一个设备已使用的引脚时引发的错误。

GPIOPinMissing

class gpiozero.GPIOPinMissing()

基类: GPIODeviceError, ValueError

未给出引脚规范时引发的错误。

InputDeviceError

class gpiozero.InputDeviceError()

基类: GPIODeviceError

InputDevice 层次结构特有错误的基类。

OutputDeviceError

class gpiozero.OutputDeviceError()

基类: GPIODeviceError

OutputDevice 层次结构特有错误的基类。

OutputDeviceBadValue

class gpiozero.OutputDeviceBadValue()

基类: OutputDeviceError, ValueError

value 设置为无效值时引发的错误。

PinError

class gpiozero.PinError()

基类: GPIOZeroError

与引脚实现相关的错误的基类。

PinInvalidFunction

class gpiozero.PinInvalidFunction()

基类: PinError, ValueError

尝试将引脚的功能更改为无效值时引发的错误。

PinInvalidState

class gpiozero.PinInvalidState()

基类: PinError, ValueError

尝试为引脚分配无效状态时引发的错误。

PinInvalidPull

class gpiozero.PinInvalidPull()

基类: PinError, ValueError

尝试为引脚分配无效的上拉电阻时引发的错误。

PinInvalidEdges

class gpiozero.PinInvalidEdges()

基类: PinError, ValueError

尝试为引脚分配无效的边缘检测时引发的错误。

PinInvalidBounce

class gpiozero.PinInvalidBounce()

基类: PinError, ValueError

尝试为引脚分配无效的防抖时间时引发的错误。

PinSetInput

class gpiozero.PinSetInput()

基类: PinError, AttributeError

尝试设置只读引脚时引发的错误。

PinFixedPull

class gpiozero.PinFixedPull()

基类: PinError, AttributeError

尝试设置具有固定上拉电阻的引脚的上拉电阻时引发的错误。

PinEdgeDetectUnsupported

class gpiozero.PinEdgeDetectUnsupported()

基类: PinError, AttributeError

尝试在不支持的引脚上使用边缘检测时引发的错误。

PinUnsupported

class gpiozero.PinUnsupported()

基类: PinError, NotImplementedError

尝试在不支持的引脚上获取引脚接口时引发的错误。

PinSPIUnsupported

class gpiozero.PinSPIUnsupported()

基类: PinError, NotImplementedError

尝试在不支持的引脚上获取 SPI 接口时引发的错误。

PinPWMError

class gpiozero.PinPWMError()

基类: PinError

与 PWM 实现相关的错误的基类。

PinPWMUnsupported

class gpiozero.PinPWMUnsupported()

基类: PinPWMError, AttributeError

尝试在不支持的引脚上激活 PWM 时引发的错误。

PinPWMFixedValue

class gpiozero.PinPWMFixedValue()

基类: PinPWMError, AttributeError

尝试在输入引脚上初始化 PWM 时引发的错误。

PinUnknownPi

class gpiozero.PinUnknownPi()

基类: PinError, RuntimeError

当 gpiozero 无法识别树莓派的修订版本时引发的错误。

PinMultiplePins

class gpiozero.PinMultiplePins()

基类: PinError, RuntimeError

多个引脚支持请求的功能时引发的错误。

PinNoPins

class gpiozero.PinNoPins()

基类: PinError, RuntimeError

没有引脚支持请求的功能时引发的错误。

PinInvalidPin

class gpiozero.PinInvalidPin()

基类: PinError, ValueError

提供了无效的引脚规范时引发的错误。

警告

GPIOZeroWarning

class gpiozero.GPIOZeroWarning()

基类: Warning

GPIO Zero 中所有警告的基类。

DistanceSensorNoEcho

class gpiozero.DistanceSensorNoEcho()

基类: GPIOZeroWarning

当距离传感器完全没有看到回声时引发的警告。

SPIWarning

class gpiozero.SPIWarning()

基类: GPIOZeroWarning

与 SPI 实现相关的警告的基类。

SPISoftwareFallback

class gpiozero.SPISoftwareFallback()

基类: SPIWarning

当回退到 SPI 软件实现时引发的警告。

PinWarning

class gpiozero.PinWarning()

基类: GPIOZeroWarning

与引脚实现相关的警告的基类。

PinFactoryFallback

class gpiozero.PinFactoryFallback()

基类: PinWarning

当默认引脚工厂加载失败并尝试回退时引发的警告。

PinNonPhysical

class gpiozero.PinNonPhysical()

基类: PinWarning

在构造函数中指定非物理引脚时引发的警告。

ThresholdOutOfRange

class gpiozero.ThresholdOutOfRange()

基类: GPIOZeroWarning

阈值超出最小值和最大值指定的范围时引发的警告。

CallbackSetToNone

class gpiozero.CallbackSetToNone()

基类: GPIOZeroWarning

当回调被设置为 None 而其先前值也为 None 时引发的警告。


中文翻译版以英文版相同知识授权方式共享:BSD-3-Clause。交流 Q群:498908352