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)
}
事情我不喜歡是捕捉所有異常的嘗試。這種事情有沒有好的做法?左側是否有更好的數據類型而不是字符串?在那裏使用Exception類可以嗎?
對於FP來說,這並不是真的。你應該幾乎不會捕獲所有的「異常」。 – Carcigenicate
你的問題不清楚。你的第一個例子根本沒有發現異常,你的第二個例子就是這樣。你真的在問如何流動異常嗎? –
你應該永遠不會捕獲所有的異常,但另一方面,異常會破壞RT並且不是類型安全的,所以我如何強制API的調用者來處理它們? – user3763116