Add extra cleanup sauce to buildgen.sh for gettext mess
[barry.git] / doc / Exceptions
blobf522c3cca7e60ec2f75fd0884df360f7df66eae4
2 The Barry library has the following exception hierarchy:
4 - std::exception
5         - std::logic_error
6         - std::runtime_error
7                 - Barry::Error
8                         - Usb::Error
9                                 - Usb::Timeout
10                         - Barry::BadPassword
11                         - Barry::BadData
12                         - Barry::BadSize
13                         - Barry::ErrnoError
14                         - Barry::BadPackedFormat
15                         - Barry::BadPacket
16                         - Barry::JDWP::Error
17                         - Barry::JDWP::Timeout
19 Usb::Error
20         All specific USB error exceptions will be derived from
21         this class.  Where possible, this class also stores the
22         specific return code from the libusb API, to allow
23         fine grained error handling.
25 Barry::Error
26         All specific Barry error exceptions will be derived from
27         this class.  This can be thrown from anywhere inside Barry.
29 std::bad_alloc
30         There is also the remote possibility that there will be memory
31         exceptions from a call to 'new'.  In that case, std::bad_alloc
32         will be thrown by the standard C++ libraries.  Barry does not
33         catch these errors.
35 std::logic_error
36         Assert-like errors will cause std::logic_error to be thrown.
37         Barry does sometimes throw these, but they should be be
38         exceedingly rare.
40 All of the above exceptions (from std, Barry, and Usb namespaces)
41 are derived from std::exception, so they can all be caught in one
42 statement for the efficient and lazy. :-)