tryAndRethrow<RT, CT extends Error, ET extends Error> static method

RT tryAndRethrow<RT, CT extends Error, ET extends Error>(
  1. RT function(),
  2. ET customErrorFactory(
    1. CT e
    )
)

RT...return type
CT...catch error type
ET...custom error type

error を throw する可能性のある function を実行し, もし error が throw された 場合 その error を catch し, 新しい custom error を rethrow する.
手動で try catch を書いた時に起こりえる error の rethrow し忘れ防止のための function.

Implementation

static RT tryAndRethrow<RT, CT extends Error, ET extends Error>(RT Function() function, ET Function(CT e) customErrorFactory){
    try {
        return function();
    } on CT catch (e) {
        throw customErrorFactory(e);
    }
}