signature BASIC_EXN = sig
exception ERROR ofstring val error: string -> 'a val cat_error: string -> string -> 'a end;
signature EXN0 = sig
include BASIC_EXN val polyml_location: exn -> PolyML.location option val reraise: exn -> 'a datatype'a result = Res of 'a | Exn of exn val is_res: 'a result -> bool val is_exn: 'a result -> bool val get_res: 'a result -> 'a option val get_exn: 'a result -> exn option val capture0: ('a -> 'b) -> 'a -> 'b result (*unmanaged interrupts*) val release: 'a result -> 'a val map_res: ('a -> 'b) -> 'a result -> 'b result val maps_res: ('a -> 'b result) -> 'a result -> 'b result val map_exn: (exn -> exn) -> 'a result -> 'a result val cause: exn -> exn
exception Interrupt_Break
exception Interrupt_Breakdown val is_interrupt_raw: exn -> bool val is_interrupt_break: exn -> bool val is_interrupt_breakdown: exn -> bool val is_interrupt_proper: exn -> bool val is_interrupt: exn -> bool val is_interrupt_proper_exn: 'a result -> bool val is_interrupt_exn: 'a result -> bool val result: ('a -> 'b) -> 'a -> 'b result val failure_rc: exn -> int
exception EXCEPTIONS of exn list val trace: (exn -> string) -> (string -> unit) -> (unit -> 'a) -> 'a end;
signature EXN = sig
include EXN0 val capture: ('a -> 'b) -> 'a -> 'b result (*managed interrupts*) val capture_body: (unit -> 'a) -> 'a result end;
structure Exn: EXN0 = struct
(* location *)
val polyml_location = PolyML.Exception.exceptionLocation;
fun result f x =
Res (f x) handle e => if is_interrupt e then reraise e else Exn e;
fun failure_rc exn = if is_interrupt exn then130else2;
(* concatenated exceptions *)
exception EXCEPTIONS of exn list;
(* low-level trace *)
fun trace exn_message output e =
PolyML.Exception.traceException
(e, fn (trace, exn) => let val title = "Exception trace - " ^ exn_message exn; val () = output (String.concatWith "\n" (title :: trace)); in reraise exn end);
end;
Messung V0.5 in Prozent
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.15Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-06-29)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.