summaryrefslogtreecommitdiff
path: root/src/docs/error.dox
blob: f0af35a711168166dc9adc1de8566c2a17647a7a (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
/*! @page error_handling Error handling

WiredTiger operations return a value of 0 on success and a non-zero
value on error.  Error codes may be either positive or negative:
positive error codes are standard error codes as described for
POSIX-like systems (for example, EINVAL or EBUSY), negative error codes
are WiredTiger-specific (for example, WT_DEADLOCK).

WiredTiger-specific error codes always appear in the -31,800 to -31,999
range.

The following is a list of possible WiredTiger-specific errors:

@if IGNORE_BUILT_BY_API_ERR_BEGIN
@endif

@par <code>WT_DEADLOCK</code>
This error is generated when an operation cannot be completed due to a conflict with concurrent operations. The operation may be retried; if a transaction is in progress, it should be rolled back and the operation retried in a new transaction.

@par <code>WT_DUPLICATE_KEY</code>
This error is generated when the application attempts to insert a record with the same key as an existing record without the 'overwrite' configuration to WT_SESSION::open_cursor.

@par <code>WT_ERROR</code>
This error is returned when an error is not covered by a specific error return.

@par <code>WT_NOTFOUND</code>
This error indicates an operation did not find a value to return. This includes cursor search and other operations where no record matched the cursor's search key such as WT_CURSOR::update or WT_CURSOR::remove.

@par <code>WT_PANIC</code>
This error indicates an underlying problem that requires the application exit and restart.

@if IGNORE_BUILT_BY_API_ERR_END
@endif

The ::wiredtiger_strerror function returns the standard message
associated with any WiredTiger, ISO C99, or POSIX 1003.1-2001 function:

@snippet ex_all.c Display an error

More complex error handling can be configured by passing an implementation
of WT_EVENT_HANDLER to ::wiredtiger_open or WT_CONNECTION::open_session.

*/