handle<T> function

T? handle<T>(
  1. T? event(), {
  2. T? alt(
    1. String msg
    )?,
  3. T? ult(
    1. T? condition,
    2. bool success
    )?,
})

Event Exception Handler

Implementation

T? handle<T>(
  T? Function() event, {
  T? Function(String msg)? alt,
  T? Function(T? condition, bool success)? ult,
}) {
  T? _alt(String e) => (alt ?? (e) => null)(e);
  T? _ult(T? c, bool s) => (ult ?? (c, s) => c)(c, s);
  try {
    return _ult(event(), true);
  } catch (e) {
    try {
      return _ult(_alt((e as Exception).msg), false);
    } catch (e) {
      return _ult(_alt(''), false);
    }
  }
}