The following exceptions are defined by GPIO Zero. Please note that multiple inheritance is heavily used in the exception hierarchy to make testing for exceptions easier. For example, to capture any exception generated by GPIO Zero’s code:
from gpiozero import *
led = PWMLED(17)
try:
led.value = 2
except GPIOZeroError:
print('A GPIO Zero error occurred')
Since all GPIO Zero’s exceptions descend from GPIOZeroError, this will work. However, certain specific errors have multiple parents. For example, in the case that an out of range value is passed to OutputDevice.value you would expect a ValueError to be raised. In fact, a OutputDeviceBadValue error will be raised. However, note that this descends from both GPIOZeroError (indirectly) and from ValueError so you can still do:
from gpiozero import *
led = PWMLED(17)
try:
led.value = 2
except ValueError:
print('Bad value specified')
Base class for all exceptions in GPIO Zero
Error raised when an operation is attempted on a closed device
Error raised when an event handler with an incompatible prototype is specified
Error raised when non-positive queue length is specified
Error raised when an invalid wait time is specified
Base class for errors specific to the CompositeDevice hierarchy
Error raised when a composite device is constructed with a reserved name
Error raised when socket number is not specified
Error raised when an invalid socket number is passed to Energenie
Base class for errors related to the SPI implementation
Error raised when invalid arguments are given while constructing SPIDevice
Base class for errors specific to the GPIODevice hierarchy
Deprecated descendent of DeviceClosed
Error raised when attempting to use a pin already in use by another device
Error raised when a pin number is not specified
Base class for errors specific to the InputDevice hierarchy
Base class for errors specified to the OutputDevice hierarchy
Error raised when value is set to an invalid value
Base class for errors related to pin implementations
Error raised when attempting to change the function of a pin to an invalid value
Error raised when attempting to assign an invalid state to a pin
Error raised when attempting to assign an invalid pull-up to a pin
Error raised when attempting to assign an invalid edge detection to a pin
Error raised when attempting to set a read-only pin
Error raised when attempting to set the pull of a pin with fixed pull-up
Error raised when attempting to use edge detection on unsupported pins
Base class for errors related to PWM implementations
Error raised when attempting to activate PWM on unsupported pins
Error raised when attempting to initialize PWM on an input pin
Error raised when multiple pins support the requested function
Error raised when no pins support the requested function
Error raised when gpiozero doesn’t recognize a revision of the Pi