Is anyone here using Kovenant for background tasks? I don’t understand how to catch exceptions thrown in the lambda
try {
task {
doSomething()
} successUI {
throw Exception()
}
} catch (e:Exception) {} // This will not catch anything
l
luke
05/17/2019, 12:59 PM
I don’t use it, but is there something that can be caught like:
No, there is failUI callback, but that checks if the exception was thrown inside the task{}-scope, not in the successUi{}-scope
l
luke
05/17/2019, 1:02 PM
OK, so would you then need the try/catch both inside the
successUI
scope?
m
Markus
05/17/2019, 1:03 PM
yes, but I need to break out of the scope as well if there is an exception so the code that is after the code that generated the exception does not execute.. not sure how to do that. return does not work
basically in this successUI {} I get some token-data from network which is validated before i throw a new task{} that uses the token. If there is a validation error the next task should not execute
so if using an inner try/catch i would want something like
try { validateToken() } catch(e:Exception) {
showErrorUi()
return // this is not allowed here
}
task { do exciting things} …