• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1.. currentmodule:: asyncio
2
3
4.. _asyncio-exceptions:
5
6==========
7Exceptions
8==========
9
10
11.. exception:: TimeoutError
12
13   The operation has exceeded the given deadline.
14
15   .. important::
16      This exception is different from the builtin :exc:`TimeoutError`
17      exception.
18
19
20.. exception:: CancelledError
21
22   The operation has been cancelled.
23
24   This exception can be caught to perform custom operations
25   when asyncio Tasks are cancelled.  In almost all situations the
26   exception must be re-raised.
27
28   .. important::
29
30      This exception is a subclass of :exc:`Exception`, so it can be
31      accidentally suppressed by an overly broad ``try..except`` block::
32
33        try:
34            await operation
35        except Exception:
36            # The cancellation is broken because the *except* block
37            # suppresses the CancelledError exception.
38            log.log('an error has occurred')
39
40      Instead, the following pattern should be used::
41
42        try:
43            await operation
44        except asyncio.CancelledError:
45            raise
46        except Exception:
47            log.log('an error has occurred')
48
49
50.. exception:: InvalidStateError
51
52   Invalid internal state of :class:`Task` or :class:`Future`.
53
54   Can be raised in situations like setting a result value for a
55   *Future* object that already has a result value set.
56
57
58.. exception:: SendfileNotAvailableError
59
60   The "sendfile" syscall is not available for the given
61   socket or file type.
62
63   A subclass of :exc:`RuntimeError`.
64
65
66.. exception:: IncompleteReadError
67
68   The requested read operation did not complete fully.
69
70   Raised by the :ref:`asyncio stream APIs<asyncio-streams>`.
71
72   This exception is a subclass of :exc:`EOFError`.
73
74   .. attribute:: expected
75
76      The total number (:class:`int`) of expected bytes.
77
78   .. attribute:: partial
79
80      A string of :class:`bytes` read before the end of stream was reached.
81
82
83.. exception:: LimitOverrunError
84
85   Reached the buffer size limit while looking for a separator.
86
87   Raised by the :ref:`asyncio stream APIs <asyncio-streams>`.
88
89   .. attribute:: consumed
90
91      The total number of to be consumed bytes.
92