blob: dbd5df720850bdba1c2b7a73b7cf0cb806e380be [file] [log] [blame]
Yury Selivanov512d7102018-09-17 19:35:30 -04001.. 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.