summaryrefslogtreecommitdiff
path: root/Doc/library/asyncio-exceptions.rst
blob: bcd3599477f74ade94d51935dade539568c9bda6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
.. currentmodule:: asyncio


==========
Exceptions
==========


.. exception:: TimeoutError

   The operation has exceeded the given deadline.

   .. note::
      This exception is different from the builtin :exc:`TimeoutError`
      exception.


.. exception:: CancelledError

   The operation has been cancelled.

   This exception can be caught to perform custom operations on
   when asyncio Tasks are cancelled.  In almost all situations the
   exception must always be re-raised.

   .. note::
      This exception is a subclass of :exc:`Exception`, so it can be
      accidentally suppressed by ``try..except`` block::

        try:
            await operation
        except Exception:
            # The cancellation is broken because the *except* block
            # suppresses the CancelledError exception.
            log.log('an error has occurred')

      Instead, the following pattern should be used::

        try:
            await operation
        except asyncio.CancelledError:
            raise
        except Exception:
            log.log('an error has occurred')


.. exception:: InvalidStateError

   Invalid internal state of :class:`Task` or :class:`Future`.

   Can be raised in situations like setting a result value for a
   *Future* object that already has a result value set.


.. exception:: SendfileNotAvailableError

   The "sendfile" syscall for is not available for the given
   socket or file type.

   A subclass of :exc:`RuntimeError`.


.. exception:: IncompleteReadError

    Incomplete read error.

    Raised by :ref:`asyncio streams <asyncio-streams>` APIs.

    This exception is a subclass of :exc:`EOFError`.

   .. attribute:: expected

      Total number (:class:`int`) of expected bytes.

   .. attribute:: partial

      Read :class:`bytes` string before the end of stream was reached.


.. exception:: LimitOverrunError

   Reached the buffer limit while looking for a separator.

   Raised by :ref:`asyncio streams <asyncio-streams>` APIs.

   .. attribute:: consumed

      Total number of to be consumed bytes.