Я думаю, что вы должны опубликовать точный, автономный рабочий пример этого, потому что это работает для меня, используя 2.8.0 (то есть вообще не имеет проблем с памятью):
scala> def foo( f : () => Unit) : Unit = try {
| f()
| } catch { case e : Exception => println("H" + e.getStackTrace) }
foo: (f: () => Unit)Unit
scala> foo(() => throw new NullPointerException)
H[Ljava.lang.StackTraceElement;@30a4effe
Интересно, есть ли у вас исключение , которое является его собственным cause
? И наоборот, это может быть случай, когда ваша программа работает на очень мало памяти ( 32Mb по умолчанию на машине клиентского класса, кстати, ), и у вас очень глубокий стек ( не редкость в скалах!)