Why does Scala Try not catching java.lang.StackOverflowError?

I have some function that can (possibly) produce StackOverflowError. Of course this is a sign of a bad design, but for now I decided to wrap it into the Try.

Try{
Calculator.eval(..)
}

The result I expect is Failure(java.lang.StackOverflowError).
The result I get is just java.lang.StackOverflowError. I suppose the problem is that StackOverflowError is not Exception, but an error. If it is, are there any ways to "catch" those kind of errors by using Try or some other monad?