Files
python-gpiozero/docs/api_exc.rst
Dave Jones 69dd8a439a The source/values toolkit
Me and my big mouth. No sooner do I declare the base classes "relatively
stable" than I go and mess around with it all again. Anyway, this is the
long promised set of utilities to make source/values more interesting.
It includes a few interesting little utility functions, a whole bunch of
examples and introduces the notion of "pseudo" devices with no (obvious)
hardware representation like a time-of-day device.

This necessitated making the event system a little more generic (it's
not exclusive the GPIO devices after all; no reason we can't use it on
composite devices in future) and by this point the mixins have gotten
large enough to justify their own module.

The pseudo-devices are a bit spartan and basic at the moment but I'm
sure there'll be plenty of future ideas...
2016-04-04 23:59:05 +01:00

107 lines
2.2 KiB
ReStructuredText

==========
Exceptions
==========
.. currentmodule:: gpiozero
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 :exc:`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 :attr:`OutputDevice.value` you
would expect a :exc:`ValueError` to be raised. In fact, a
:exc:`OutputDeviceBadValue` error will be raised. However, note that this
descends from both :exc:`GPIOZeroError` (indirectly) and from :exc:`ValueError`
so you can still do::
from gpiozero import *
led = PWMLED(17)
try:
led.value = 2
except ValueError:
print('Bad value specified')
Errors
======
.. autoexception:: GPIOZeroError
.. autoexception:: DeviceClosed
.. autoexception:: BadEventHandler
.. autoexception:: CompositeDeviceError
.. autoexception:: CompositeDeviceBadName
.. autoexception:: EnergenieSocketMissing
.. autoexception:: EnergenieBadSocket
.. autoexception:: SPIError
.. autoexception:: SPIBadArgs
.. autoexception:: GPIODeviceError
.. autoexception:: GPIODeviceClosed
.. autoexception:: GPIOPinInUse
.. autoexception:: GPIOPinMissing
.. autoexception:: GPIOBadQueueLen
.. autoexception:: GPIOBadSampleWait
.. autoexception:: InputDeviceError
.. autoexception:: OutputDeviceError
.. autoexception:: OutputDeviceBadValue
.. autoexception:: PinError
.. autoexception:: PinInvalidFunction
.. autoexception:: PinInvalidState
.. autoexception:: PinInvalidPull
.. autoexception:: PinInvalidEdges
.. autoexception:: PinSetInput
.. autoexception:: PinFixedPull
.. autoexception:: PinEdgeDetectUnsupported
.. autoexception:: PinPWMError
.. autoexception:: PinPWMUnsupported
.. autoexception:: PinPWMFixedValue
Warnings
========
.. autoexception:: GPIOZeroWarning
.. autoexception:: SPIWarning
.. autoexception:: SPISoftwareFallback