Как вы обрабатываете возвращаемые типы, когда мы отлавливаем исключения? Есть ли лучшие практики?
class Test {
val emptymap = Map[Int,Int]()
val divisor = 100
def handleInt ( i : Int) : Map[Int, Int] = {
try {
val output = divisor / i
Map(divisor -> output)
} catch {
case e : ArithmeticException => e.printStackTrace(); emptymap
case e : NumberFormatException => e.printStackTrace(); emptymap
}
}
def handleIntTry ( i : Int) : Map[Int, Int] = {
val answer = Try(divisor / i)
answer match {
case x : Success[Int] => Map(divisor -> answer.get)
case x : ArithmeticException => { x.printStackTrace(); emptymap}
case x : NumberFormatException => { x.printStackTrace(); emptymap}
}
}
}
Они оба правы? Какой способ лучше всего справиться с этими ситуациями?