Using the Option way
Let's try and change the function signature in a way that we can reason about and modify it so that it does what it says:
def toInt(str: String): Option[Int] = Try(str.toInt) match { 
  case Success(value) => Some(value) 
  case Failure(_) => None 
}In the preceding definition, we knew that the response was optional. We might or might not get a corresponding integer value for every string we pass to our function. Hence, we made the response type an Option[Int]. Also, as you may have noticed, we used another construct available to us from the scala.util package, named Try. How do we use Try? We pass a function for its evaluation to the Try block's constructor/apply method. As might be obvious, the Try block's apply method takes a function as a by-name parameter, which tries to evaluate that function. Based on the result or exception, it responds as a Success(value) or Failure(exception).
We used the Try  construct and passed logic as an argument. On success, we responded...
 
                                             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
     
         
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                