1
私はFPパラダイムに応じて、以下の機能を変換しようとしています:、検索機能の例
def findByEmail(email: String): User = {
val result = jdbc.find("select * from user where email..")
return result;
}
私の最初の試みは、次のいずれかです。
def findByEmail(email: String): Either[String, Option[User]] = {
try {
val result = jdbc.find("select * from user where email..")
} catch (Exception e) {
return Left(e.getMessage())
}
if (result == null) return Right(None)
Right(result)
}
Iの事好きではないすべての例外をキャッチしようとする試みです。そんなことに良い練習はありますか?いずれかの左側にStringよりも優れたデータ型がありますか?そこにExceptionクラスを使用してもよろしいですか?
これは実際にはFPとは関係ありません。あなたは 'Exception'をすべて捕まえることはほとんどありません。 – Carcigenicate
あなたの質問は不明です。あなたの最初の例では、2番目の例では例外をすべてキャッチしません。あなたは本当に例外を流す方法を尋ねていますか? –
例外をすべて捕まえるべきではありませんが、例外的に例外はRTを破るため、型の安全ではありません。どうすれば私のAPIの呼び出し側に強制的に処理させることができますか? – user3763116