package obus

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

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.

type name = OBus_name.error

An error name. For example: "org.foo.bar.Error.Failed"

type message = string

An error message

exception DBus of name * message
val ocaml : name

The name of the D-Bus error which is generated for uncaught ocaml exceptions that have not been registered

D-Bus errors creating/casting
val name : exn -> name

name exn returns the D-Bus error name under which this exception is registered. If the exception is not registered, then ocaml is returned.

val make : name -> message -> exn

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.

val cast : exn -> name * message

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

module Register (Error : Error) : sig ... end

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.

exception Failed of message
exception Invalid_args of message
exception Unknown_method of message
exception Unknown_object of message
exception Unknown_interface of message
exception Unknown_property of message
exception Property_read_only of message
exception No_memory of message
exception No_reply of message
OCaml

Innovation. Community. Security.