D-Bus errors management
This module integrates D-Bus errors into OCaml exceptions, and OCaml exceptions into D-Bus errors.
To do this, an OCaml exception that maps a D-Bus error should be registered with Register
.
An error name. For example: "org.foo.bar.Error.Failed"
General exception for D-Bus errors. When the reply to a method call is a D-Bus error that have not been registered, this exception is raised.
Arguments are:
- the D-Bus error name
- the error message
The name of the D-Bus error which is generated for uncaught ocaml exceptions that have not been registered
D-Bus errors creating/casting
name exn
returns the D-Bus error name under which this exception is registered. If the exception is not registered, then ocaml
is returned.
make exn message
creates an exception from an error name and an error message. If the name is not registered, then DBus(name, message)
is returned.
cast exn
returns the D-Bus name and message of the given exception. If the exception is not registered, (ocaml,
Printexc.to_string exn)
is returned.
Errors registration
module type Error = sig ... end
Signature for D-Bus error
Register an error. The typical use of the functor is:
Well-known dbus exception
The following errors can be raised by any service. You can also raise them in a method your service implement.
Note that the error message will normally be shown to the user so they must be explicative.
The org.freedesktop.DBus.Error.Failed
error
The org.freedesktop.DBus.Error.InvalidArgs
error
exception Unknown_method of message
The org.freedesktop.DBus.Error.UnknownMethod
error
exception Unknown_object of message
The org.freedesktop.DBus.Error.UnknownObject
error
exception Unknown_interface of message
The org.freedesktop.DBus.Error.UnknownInterface
error
exception Unknown_property of message
The org.freedesktop.DBus.Error.UnknownProperty
error
exception Property_read_only of message
The org.freedesktop.DBus.Error.PropertyReadOnly
error
The org.freedesktop.DBus.Error.NoMemory
error
The org.freedesktop.DBus.Error.NoReply
error