private const Actor doSomething := Actor(pool) |Obj msg|
{
Int? aval := null
echo(aval + 10) //cause an error
}
Then there will be no error message printed, which definitely should be printed
kaushikFri 4 Nov 2011
+1, I've had hard times debugging this too
brianFri 4 Nov 2011
The problem here is that if the caller is using the Future, then it will be handling the exception when it goes to access the Future.get. The "silent" exception problem happens when no one ever checks the future. But we can't actually know that very easily. So I am not sure how to log exceptions on async calls, but not create spam on sync calls where the caller will handle it. Open to ideas.
jessevdam Fri 4 Nov 2011
When I have an actor
Then there will be no error message printed, which definitely should be printed
kaushik Fri 4 Nov 2011
+1, I've had hard times debugging this too
brian Fri 4 Nov 2011
The problem here is that if the caller is using the Future, then it will be handling the exception when it goes to access the
Future.get
. The "silent" exception problem happens when no one ever checks the future. But we can't actually know that very easily. So I am not sure how to log exceptions on async calls, but not create spam on sync calls where the caller will handle it. Open to ideas.