パッケージ、リポジトリ、アプリカテゴリを検索

GitHub リポジトリerf/error_or

エラーまたは

値TまたはエラーObjectを含むErrorOr結果を返します。

エラーまたは のプロジェクト画像
スター
11
フォーク
0
最終プッシュ(UTC)
2025/07/07
プロジェクト状態
公開中

元の README

以下は英語原文のスナップショットです。最新版は GitHub をご覧ください。

ErrorOr

Return a result ErrorOr with either a value T or an error Object.

Features

Alternative error handling by wrapping a function that may throw exceptions, in a function that handle these and returns an ErrorOr.

A more explicit way of defining a function which may return an error and avoid having to try/catch these functions.

ErrorOr can be used for both async and synchronous functions.

API

Create an ErrorOr instance by calling one of its factory constructors value or error.

Check hasError or hasValue, before calling error or value. If either is called without the proper check, an ErrorOrTypeError is thrown.

The convenient function ErrorOr.wrap, does the try/catch logic for you given a throwing function. It returns a FutureOr so can be used for both async and synchronous functions.

Examples

Async example

Future<ErrorOr<T>> asyncFuncWhichThrowsWrapper() async {
  try {
    return ErrorOr.value(await asyncFuncWhichThrows());
  } catch (e) {
    return ErrorOr.error(e);
  }
}

ErrorOr<String> valueOrError = await asyncFuncWhichThrowsWrapper();
if (valueOrError.hasError) {
  return valueOrError;
}
String value = valueOrError.value;

Or let ErrorOr.wrap handle the try/catch logic

ErrorOr<String> valueOrError = await ErrorOr.wrap(asyncFuncWhichThrows)
if (valueOrError.hasError) {
  return valueOrError;
}
String value = valueOrError.value;

Additional information

See my article Error handling in Dart and ErrorOr.

The "ErrorOr" is inspired by the SerenityOS ErrorOr type.

The Success/Failure pattern was inspired by result_type.

I'd like to keep this package minimal, but please get in touch on github if you have suggestions to improvements.

Erlend GitHub avatar
GitHub 作者

Erlend ↗

言語Dart

カテゴリー

このリポジトリが公開するパッケージ

使用している依存関係

依存関係一覧 2 件

プロジェクトに合うリポジトリを選ぶには?

用途で絞り込み、開発状況を比較し、採用前に元のリポジトリで要件を確認しましょう。

  1. 名前・作者・説明で検索し、技術トピックで絞り込みます。
  2. スター、フォーク、最近のプッシュを比較します。スターは関心の目安であり、品質の保証ではありません。
  3. 利用前に GitHub で README、ライセンス、Issues を確認します。

情報源と管理

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗