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

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
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

The org.freedesktop.DBus.Error.Failed error

exception Invalid_args of message

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

exception No_memory of message

The org.freedesktop.DBus.Error.NoMemory error

exception No_reply of message

The org.freedesktop.DBus.Error.NoReply error