Trong một chương trình của tôi, tôi muốn bắt tất cả các trường hợp ngoại lệ và in rõ ràng chúng (để có thể tiến hành cuối cùng trong khi vẫn thấy ngoại lệ).Làm thế nào để có được dấu vết ngăn xếp của một ngoại lệ trong Scala để in nó?
Vì vậy, tôi đã cố gắng này:
try {
...
}
catch {
case ex : Exception => {
println ("\n" + ex)
println ("\n" + ex.getStackTrace + "\n")
}
}
finally {
...
}
Nhưng điều này (sử dụng getStackTrace) chính nó gây ra "java.lang.OutOfMemoryError: không gian PermGen". Tôi đang làm gì sai? Tôi chắc chắn tôi có nhiều bộ nhớ miễn phí JVM heap miễn phí trước khi nhận được điều này (như tôi đã cố gắng gây ra một ngoại lệ trong phần đầu của chương trình).
Loại ngoại lệ nào được ném vào 'thử' khối? –
@larsmans, đó là một IllegalArgumentException và tôi tự mình ném nó. – Ivan
Bạn có sử dụng Scala 2.7.x hoặc Scala 2.8.x không? – soc