logger_result library
Classes
- Complete
-
Result もしくは Safety の V に void を指定する代わりに利用するための型.
V が dynamic または Object? を許容できるようにすると 静的型解析が働かず 型解析に関する実行時 error の危険が生じてしまい その場合どこで error が発生したのかわからず追跡が難しい.
-
Danger<
V extends Object, E extends Exception> -
Result との違いは
Eが Object ではなく Exception であること.
成功もしくは失敗の可能性があることを示す型.
V で void を指定したい場合, 代わりに Complete を指定する.
-
Disaster<
V extends Object, EX extends Exception, ER extends Error> -
Risk と Danger の両方を伴うことを表す型.
Suffer もしくは Survive を返す.
V で void を指定したい場合, 代わりに Complete を指定する.
-
Failure<
V extends Object, E extends Exception> - History
-
Uneditable form.
- Log
- LoggerResultInterface
- LoggerResultInterface を implements した class を log として追加できるように.
- LoggerResultMessageSignature
- この class を implements した class が Result.wrapped に設定されたとき LoggerResultMessageSignature.loggerResultMessage の中身が shortHand 表記でも log で表示されるようになる.
- LogPart
-
Panic<
E extends Error> -
Error が発生したことを表す型.
プログラムを停止させる処理に利用する.
Error をそのまま throw しただけでは log の情報が付与されないため Panic に Error を wrap する必要がある. -
Result<
V extends Object> -
Risk<
V extends Object, E extends Error> -
呼び出し側の handling で回避しなければならない error が存在することを示す型.
なので 単純に error を throw する記述があることを示す型ではない.
例えば exception handling で throw out で error を throw する記述をするが その error は この Risk 型で示す対象ではない.
Vで void を指定したい場合, 代わりに Complete を指定する.
error だった場合 throw されるので 返り値は は success のみである.
また このときのEは error があることを呼び出し側に示すためだけにあるので 表記できればそれで仕事はおわりである.
-
Safety<
V extends Object> -
Danger とは対照的に 必ず 成功した結果を返すことを示す型.
V で void を指定したい場合, 代わりに Complete を指定する.
-
Success<
V extends Object, E extends Exception> -
Suffer<
V extends Object, EX extends Exception, ER extends Error> -
Survive<
V extends Object, EX extends Exception, ER extends Error>
Typedefs
-
FutureComplete
= Future<
Complete> -
FutureDanger<
V extends Object, E extends Exception> = Future< Danger< V, E> > -
FutureDisaster<
V extends Object, EX extends Exception, ER extends Error> = Future< Disaster< V, EX, ER> > -
FutureFailure<
V extends Object, E extends Exception> = Future< Failure< V, E> > -
FutureResult<
V extends Object, EX extends Exception, ER extends Error> = Future< Result< V> > -
FutureSafety<
V extends Object> = Future< Safety< V> > -
FutureSuccess<
V extends Object, E extends Exception> = Future< Success< V, E> >
Exceptions / Errors
- LoggerResultException
- LoggerResultlError
-
LoggerResultlErrorA Result.wrapped is not expected. Can't call Result.asExpected.
LoggerResultlErrorB Result.wrapped is not exception. Can't call Result.asException.
LoggerResultlErrorC Result.wrapped is not error. Can't call Result.asError.
LoggerResultlErrorD never reached proccess.
LoggerResultlErrorELoggerResultlErrorFLoggerResultlErrorG - LoggerResultlErrorA
- Result.wrapped is not expected. Can't call Result.asExpected.
- LoggerResultlErrorB
- Result.wrapped is not exception. Can't call Result.asException.
- LoggerResultlErrorC
- Result.wrapped is not error. Can't call Result.asError.
- LoggerResultlErrorD
- never reached proccess.